JSON göndermek için nasıl ajax, DV yerine sorgu dizesi
Biri jQuery
querystring
yerine json
gerçek gönderme yapmak için ne kadar kolay bir şekilde açıklayabilir mi?
$.ajax({
url : url,
dataType : 'json', // I was pretty sure this would do the trick
data : data,
type : 'POST',
complete : callback // etc
});
Bu aslında dikkatli querystring
json
hazır dönüştürür. Sinir bozucu şeylerden biri nesne array: []
array[]: []
muhtemelen querysting
sınırlamalar nedeniyle dönüştürülecektir.
-güncelleme-
Uygun yöntemi cevapları aşağıda bulabilirsiniz:
$.ajax({
url : url,
dataType : 'json',
contentType: 'application/json; charset=UTF-8', // This is the money shot
data : data,
type : 'POST',
complete : callback // etc
});
Lütfen dikkatbu CORS uygun başlıklar sunucu tarafı ve net bazı örnekler aykırı gerektirirİzin Başlıklarolamazjoker karakterler kullanın. (Allow-Originolabilir.)
{
Content-Type : 'application/json',
Access-Control-Allow-Origin : '*',
Access-Control-Allow-Headers : 'Content-Type' // You cannot use '*'
}
-güncelleme-
Lütfen dikkatjQuery
şimdi İKİ istekleri, el sıkışma tamamlamak için tek ve gerçek içeriği ile gönderecek. Bu senin kendi güvenliğin için, her nasılsa.
Eğer sunucunuz çok yönlü bir kullanma olmasını istiyorsanız bunu da aklınızda tutunSorgu dizesigönderir sadecetek bir isteğim var. Doğru kullanarakJSONen azından göndeririki isteği, el sıkışıyor.
Bu kafamı karıştırıyordu, (potansiyel okuyucu) önceden haber ver dedim.
CEVAP
Sunucu JSON olduğunu anlar JSON.stringify
ilk JSON için nesne seri hale getirmek ve içerik türünü belirtmek için kullanın. Bu hile yapmak gerekir:
$.ajax({
url: url,
type: "POST",
data: JSON.stringify(data),
contentType: "application/json",
complete: callback
});
JSON
nesne yerel olarak JavaScript 1.7 / destekleyen tarayıcılar ECMA 5 veya daha sonra kullanılabilir olduğunu unutmayın. Eğer eski desteği lazım olursa json2 kullanabilirsiniz.
Nasıl Krom XML yerine JSON dönmek için...
Nasıl terminalden Curl ile JSON veri g...
Nasıl, asenkron yerine senkron AJAX is...
Nasıl (sorgu dizesi) Node.js üzerinde ...
C bir URL sorgu dizesi oluşturmak için...