2008-10-20 33 views
10

Verileri Ajax GET isteğindeki URL'nin bir kısmı olarak parametreler olarak geçirmenin avantajı nedir?Ajax GET istekleri: parametreleri kullan veya URL'ye veri koy?

kullanma parametreleri: URL kullanma

var ajax = new Ajax.Request('server.php',{ 
    parameters: 'store=11200&product=Meat', 
    onSuccess: function(myData){whatever} 
}); 

:

var ajax = new Ajax.Request('server.php?store=11200&product=Meat',{ 
    onSuccess: function(myData){whatever} 
}); 
+0

ajax kütüphanesi olarak Prototype kullanıyor musunuz? Bu yöntemlerden ve benzeri gibi görünüyor. – stephenbayer

+0

Prototip gerçekten. –

cevap

13

bir avantajı parameters argüman kullanmadan bir dize olarak yerine bunu bir Hash benzeri bir nesne geçirebilirsiniz olmasıdır. (Bunu yaparsanız Prototip Ajax istekleri için varsayılan yöntemi POST olarak, olsa da, bu yüzden "GET" için method parametreyi ayarlamak emin olun; daha fazla ayrıntı için the Prototype Introduction to Ajax bakınız.)

ile daha fazla-line olan diğer avantajı, Verdiğiniz örnek, istek URL'sini gönderilen seçeneklerden ayırabilmenizdir. Örneğin, birkaç farklı URL'ye benzer isteklerin bir demetini göndermeniz gerekiyorsa bu yararlı olabilir. (Bu durumda, her istek için değiştirdiğiniz ortak bir parametre Hash olması, bir parametre dizesi kullanmaktan daha yararlı olabilir.)

Daha fazla bilgi için, bkz. the Prototype documentation of Ajax options.

+0

Bu cevabı kabul etmek istiyorum, ancak bir sebepten dolayı bunu yapmak için bağlantıyı alamıyorum. –

+0

Artık bir bağlantı değil. Oy sayısı altında Checkmark görüntüsü var. –

+0

İşte bir ekran görüntüsü: http://tinyurl.com/5rf9ys –

1
  • Okunabilirlik
  • Kolay bir nesneyi kullanmak ve bunu tefrika ({store: 11200, product: "Meat"})
  • Okunabilirlik
+0

Cevabınız soruyu referans göstermiyor, bir anlam ifade etmiyor ve iki kez "Okunabilirlik" ifadesini dahil ediyorsunuz. – Blairg23

+0

Sigh ........... – nickf

0

O gerçekten önemli değil bu diğer yandan teknik açıdan biçimlendirme ve tercih etmesinden daha olsun İstekler her zaman URL’deki verileri içerir. Parametreler, GET isteğini oluşturmak için uygun bir yoldur. parametrelerin favori kullanımlarından

9

biri bunları açıkça listeleme olmadan formun tüm alanlarında geçmektir:

new Ajax.Request('/myurl.php', { 
    method: 'get', 
    parameters: $('myForm').serialize(), 
    onSuccess: successFunc(), 
    onFailure: failFunc() 
} 
+2

Prototip'in 'Form.Request' işlevi bunu daha da kolaylaştırır. Form verin ve formun 'action' özniteliğini URL olarak kullanan bir Ajax isteği oluşturacak, ayrıca formu seri hale getirecek ve bu değerleri varsayılan olarak parametreler olarak geçirecektir. – savetheclocktower

+0

Bu çok havalı. Bunu bilmiyordum. –

+0

http://www.prototypejs.org/api/form/request –

1

bu cevaplamak için, parametreler çalışma şeklini bilmeli. Temel olarak HTTP (bildiğim, daha fazla var) veri istemek için iki yöntem vardır: GET ve POST. Yukarıdaki kodunuzu yaptığı gibi GET için

, parametreleri, sen istemek kaynak eklenir:/my/kaynak/ad para1 = bla. Burada, doğrudan kaynak ismine eklerseniz veya parametre seçeneğini kullanırsanız hiçbir fark yoktur. parametreleri HTTP vücutta kaynaktan ayrı yazılır, POST için

; GET normalde (Its GET) veri istemek için kullanılır. Bunun için parametre seçeneğini kullanmalısınız. POST (büyük) veri göndermek için kullanılır.

Kullanılacak yöntem belirtmek için yöntemini kullanın.

Not: GET kaynağının (sunucudan sunucuya bağlı olarak) uzunluğu üzerinde bir sabit sınırı vardır. Bu yüzden ASLA GET kullanarak çok veri gönderin.

1

Ayrıca biçimini kullanabilirsiniz: bu şekilde yapmanın avantajı günü

var ajax = new Ajax.Request('server.php',{ 
    parameters: { 
    store: 11200, 
    product: "Meat" 
    } 
    onSuccess: function(myData){whatever} 
}); 

URL'yi değiştirmeden bir POST için bir GET değişebilir olmasıdır.

İlgili konular