2012-05-09 18 views
5

POST bekliyorum bir WCF Hizmeti var. Fiddler'ı kullanma Etki alanları arası durumlarda POST isteğimin bir GET değerine dönüştürüldüğünü keşfettim ve bu da sunucudan 405 hatasıyla sonuçlandı.JQuery ajax JSONP POST, etki alanları arası geçiş yaparken GET olarak değiştirildi

$.ajax({ 
    type: "POST", 
    url: "http://blah/blah.svc/Test", 
    data: JSON.stringify("{ 'WebUserID': 4 }"), 
    dataType: "jsonp", // from server 
    contentType: "application/json; charset=utf-8", // to server 
    success: function (data, status, xhr) { 
     alert("success--"); 
    } 
}); 

Bu konuda biraz ışık tutabilir mi?

Teşekkür

+1

Bu gerçekten bir kopya değil, ancak yanıt şu soruya cevap veriyor: http://stackoverflow.com/questions/2699277/post-data-to-jsonp – lonesomeday

cevap

0

O artık JSON.stringify yaptıktan sonra bir isim/değer çifti var çünkü GET dönüştürerek ediyor; sadece bir ipin var. POST bir ad/değer çifti gerektirir.

+0

Aksi belirtilmedikçe verilerinizi JSON.stringify yapmayın Bir nesnenin seri temsilini geçmek anlamına gelir. –

+0

Söylememeli, ama bahsettiğin şey yüzünden değil. 'Stringify' parametresi zaten "dizilmiş" dir, bu bir JS nesnesi değildir (bir dizedir). Dizgeleme, onu çift kodlayacaktır, bu başarısız olur. – carlosfigueira

+0

Ve verileri bir POST isteğinde göndermek için, aslında nesnenin serileştirilmiş bir sürümünü (istek gövdesinde) geçirmesi gerekir. – carlosfigueira

10

POST ve JSONP yok. JSONP, DOM'a sunucuya bir GET isteği gönderen yeni bir komut dosyası etiketi oluşturarak çalışır. JQuery.ajax iki uyumsuz parametre (POST, jsonp) veriyorsunuz ve jQuery diğerinden birini seçiyor.

Tek güncelleştirme: alan adı hizmetlerinde GET dışı istekleri etkinleştirmek için CORS (Çapraz Kaynak Kaynak Paylaşımı) gibi bir şey kullanabilirsiniz. WCF bunu kutudan desteklemiyor, ancak WCF'de http://blogs.msdn.com/b/carlosfigueira/archive/2012/05/15/implementing-cors-support-in-wcf.aspx numaralı telefondan uygulama konusunda bir yazı yazdım.

+0

Downvoter, neden yorum yapmaya dikkat et? – carlosfigueira

İlgili konular