Bir yer imini Firefox'ta POST verileriyle nasıl kaydederim?


23

Firefox yer imi olarak GET kullanılarak erişilemeyen bir sayfayı kaydetmek istiyorum. Sayfayı almanın tek yolu, bazı POST verileri göndermektir.

Örneğin, yalnızca POST'un parsel numaralarını girmesine izin veren bir Chronopost parsel izleme sayfasını yer imlerine eklemek istiyorum .

Bunu yapmamı sağlayacak bir Firefox eklentisi veya başka bir teknik bilen var mı?


Sadece bir inek notu: GET isteklerinin verileri değiştirmemesi gerekiyor, bu yüzden onları yer imlerine ekleyebilir ve istediğiniz sıklıkta arayabilirsiniz. POST isteklerinin sunucudaki durumlarını değiştirmelerine izin verilir, bu nedenle kolayca yer imlerine eklenemezler. Yer imlerine eklediğiniz POST bağlantılarında, onları birden çok kez aramanın Amazon'dan fazladan bir ürün satın almak gibi sorunlara yol açıp açmayacağını düşünün.
Rich Homolka

Yanıtlar:


20

Bir yer imi kullanın. Örneğin , aşağıdaki kodu içeren bir yer imi oluşturmak için http://userjs.up.seesaa.net/js/bookmarklet.html adresindeki aracı kullanabilirsiniz :

(function(){
  var post_to_url = function(path, params, method) {
    var openWindow = window.open(path);
    method = method || "post"; 
    var form = openWindow.document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);
    for(var key in params) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", params[key]);
        form.appendChild(hiddenField);
    }
    openWindow.document.body.appendChild(form);
    form.submit();
  };
post_to_url(
  'http://www.chronopost.fr/transport-express/livraison-colis/engineName/search/accueil/suivi', 
  {search:'test'});
})()

Ardından oluşturulan yer imi bağlantısını, favori tarayıcınızda yer imi olarak kullanın. Tıkladığınızda, bir pencere açılacak, parametrelerle bir form oluşturacak {search:'test'}ve bu formu gönderecektir.

URL’yi ve parametreleri değiştirmek için, son çağrıya ince ayar yapın post_to_url.

Bu strateji, yer imini bir kez oluşturup birçok kez kullanmanız gerektiğinde harika olabilir. Ancak, düzenli aralıklarla yapmanız gerekirse yeni yer imleri oluşturmayı çok kolay hale getirmez.


{Search: 'test'} içinde 'etrafta arama yapmanıza gerek yok mu?
Anton Daneyko

1
@mezhaka: Hayır. Bu aslında bir JSON dizesi yerine javascript olarak değerlendirildiğinden, özellik adı boşluk veya özel bir karakter içermedikçe, özellik isimlerinin etrafındaki tırnaklar isteğe bağlıdır.
StriplingWarrior

1
Yanıt için teşekkürler. Anahtarımı girmek için url girmem gerekirse, değerler var mı? Anahtarlarımda boşluklar veya ASCII olmayan karakterler varsa ve değerler '' ile çevrili olması için yeterli mi yoksa ö gibi sembollerden bahsetmek zorunda mıyım?
Anton Daneyko


4

@StriplingWarrior tarafından verilen yanıtı kullanarak, yer imini aynı pencerede açarak normal yer işaretleriyle aynı davranışı yapmak için komut dosyasını biraz değiştirdim.

(function(){
  var post_to_url = function(path, params, method) {
    method = method || "post"; 
    var form = window.document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);
    for(var key in params) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", params[key]);
        form.appendChild(hiddenField);
    }
    window.document.body.appendChild(form);
    form.submit();
  };
post_to_url(
  'http://192.168.0.1/goform/login', 
  {loginPassword:'password',loginUsername:'admin'});
})()

Http://userjs.up.seesaa.net/js/bookmarklet.html adresindeki aracı kullanarak kodu kopyalayıp yapıştırabilir, url ve parametreleri değiştirebilir ve oluşturulan yer işaretini yer imlerinize ekleyebilirsiniz. Bu, örneğin yönlendirici kontrol panelinize erişmek için oldukça kullanışlıdır.


4

Bu soruya verilen cevaplar sayesinde Firefox için bu güzel eklentiyi buldum: Bookmark POST . İyi bir dokümantasyondan yoksun ama bu başlamana neden olacak:

Bu yer imi ile, yer imi verilen POST isteğiniz için dört kolay adımı (javascript gerekmez):

  1. Sayfayı yer imlerine eklemek istediğiniz formu açın ve formu "tipik" bir şekilde doldurun. Henüz göndermeyin.
  2. Web Geliştirici Araçları -> Ağ Analizi'ni açın.
  3. Formunu gönder. Gönderim ağ analizinde gösterilecektir. Orada "Düzenle ve tekrar gönder" i seçebilir ve "İstek-Organını" kopyalayabilirsin.
  4. Form sayfasına bir Yer İşareti oluşturun ve dizgiyi POSTDATA={YOUR_REQUEST_BODY_HERE}yer imleri açıklaması olarak ekleyin .

Benim için bu Javascript ile oynamaktan çok daha kolaydır.


Mükemmel cevap ama Waterfox 56.2 işe yaramadı
euri Pinhollow

3

En basit yaklaşım:

Doldurulmuş form ve otomatik yükleme özelliğine sahip yer imi

javascript:'<html><body onload="document.forms[0].submit()"><form action="http://www.example.com" method="POST"><input name="whatever" value="whatever" type="hidden"></form></body></html>'

Dezavantajı: Chromium, geçerli web sayfası URL’sini HTTP yönlendiricisi olarak gönderir. (Firefox ve IE olmaz.)

Neden referans önemli? Gizlilikle ilgili endişeleri göz önünde bulundurmadan, bazı web siteleri POST'taki referansları, gizli iframe form postası tarafından yapılan kötü niyetli isteklerden korumak için kontrol eder.

Alternatif yaklaşım:

Burada anlatılan , biraz daha okunabilir ancak bir yerde HTML dosyasına ihtiyacı var, kullanım şöyle olacak:

file:///C:/getToPost?name1=value1&name2=value2#http://url.com/service

Yerel olarak kaydedilmiş dosyası üzerinden çalışırken, yönlendiren olacak değil gönderilecektir. Chromium'da bile.
Dosya uzaktaki bir web sitesine yerleştirilirse, başvuru yönlendirilir ve web sitesi barındırma ve orijinal sorgu dizesini içerir.


2

Frmget yer işareti http yöntemine kayıtsız birçok siteler için çalışır:, formu göndermek, imleyicisini uygulamak sonuç sayfasına yer imi.

POST gerektiren siteler için, kullanıcı dostu olmayan bu uzantı var . Bunu frmget ile birleştirebilirsiniz: frmget uygulayın, formu gönderin, sayfayı yer imlerine ekleyin, GET parametrelerini önceden tanımlanmış olan açıklama alanına kopyalayın POSTDATA=.


1

Bir HAR dosyasını parametre olarak kabul etmek için @ StriplingWarrior tarafından sağlanan betiği biraz değiştirdim. HAR dosyası Chrome'un Geliştirici Araçlarından (Ctrl + ÜstKrkt + J) kaydedilebilir.

Öncelikle sayfayı önceden kaydedilmiş form verileriyle açın, ardından Ağ sekmesindeki ilk belgeye sağ tıklayın ve "Girişi HAR olarak kopyala" seçeneğini seçin. Ardından içeriği aşağıdaki komut dosyasına yapıştırın:

<html><body><script>
function dopost() {
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", har["request"]["url"]);
var params = har["request"]["postData"]["params"];
for(var e in params) {
    var hiddenField = document.createElement("input");
    hiddenField.setAttribute("type", "hidden");
    hiddenField.setAttribute("name", params[e]["name"]);
    hiddenField.setAttribute("value", params[e]["value"]);
    form.appendChild(hiddenField);
}
document.body.appendChild(form);
form.submit();
}
window.onload=dopost;

var har=
//-----PASTE HERE------

</script>
</body></html>

Bunu bir html dosyası olarak kaydedin ve gönderilen formu açması gerekir. Site viewtate kullanıyorsa veya yönlendireni kontrol ediyorsa bu işe yaramaz.



0

Yayınla ilgili anladığım kadarıyla, bu verileri kendiniz kaydetmenin ve yeniden göndermenin yolu yok.

Firefox'un varsayılandan daha iyi formları sizin için dolduracak bir eklenti almanızı öneririm.

Chrome'un aslında çok güçlü bir form tanıma ve doldurma özelliği var, ancak aynı şeyi yapan bir firefox addon olduğundan eminim.

Bunu deneyin, umut verici görünüyor: Form Saver Firefox Eklentisi


Ancak ne yazık ki Chrome, genel HTTP AUTH sayfalarının şifrelerini kaydetmeyi önermiyor.
qroberts

Lazarus bugünlerde form koruyucusundan daha iyidir.
Tobu

0

POST işlemlerini yer imlerine eklemek için bu Firefox Eklentisini kullanıyorum .


0

Dayanarak kullanıcının yer işareti :

Bu, Firefox’lu UPS ve arama çubuğu için bir anahtar kelime (örneğin, XYZ’nin daha sonra %syer işaretinin içine yerleştirdiği "ups XYZ" ) ile çalışıyor gibi görünüyor:

javascript:'
<html><body%20onload="document.forms[0].submit()">
  <form%20action="https://wwwapps.ups.com/WebTracking/track"%20method="POST">
  <input%20name="trackNums"%20value="%s"%20type="hidden">
  <input%20name="track.x"%20value="anything"%20type="hidden">
  </form>
</body></html>'

(bunun bir satır olması gerektiğini unutmayın)

Ayrıca bakınız:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.