SORU
2 EKİM 2012, Salı


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
2 EKİM 2012, Salı


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fullscreen

    Fullscreen

    23 Mart 2006
  • Tech4Geeks

    Tech4Geeks

    8 Ocak 2012
  • ThreadBanger

    ThreadBanger

    2 Mart 2007