2012-01-20 22 views
6

arasında böyle basit bir ajax aramanız var jsonp döndürür. Çalışmıyorsa, json yerine jsonp isteği (?callback=jQueryxxxxxxxxx ile URL iletildiğini algıladığını algılayarak) isteği yapar ve jquery adı geri aramada adı geçen anonim bir işlev olarak paketlendiğinden başarı işlevi hiçbir zaman çağrılmaz. argümanı ve sunucu standart jsonu döndürür (jsonp'u POST isteği ve çapraz etki alanı talebi olarak kullanmak istemiyorum). Kontrol ettim, hem geçerli görünüm URL'si hem de ajax url argümanı için bu uhttp://localhost:8080/myapp/areax/... üzerindeydi, bu yüzden jQuery'nin neden JSONP talebi yaptığını anlamıyorum.jQuery.ajax yerine json

DÜZENLEME: Bu url istek yapıldığında gelmiştir çalışmıyor hangi

Görünüm şu şekildedir: ajax http://hostname:8080/AreaName/Report/ViewReport ve u parametresi /AreaName/MyAutoComplete/Arama, bu nedenle tam url gibidir

[{"Id":2,"Text":"001"},{"Id":7,"Text":"002"}] 
01: http://hostname:8080/AreaName/MyAutoComplete/Search?callback=jQuery151013129048690121925_1327065146844

Sunucunun yanıtı şöyle böyle yapılmış olan otomatik tamamlama etmektir

Ben

<script> 
jQuery151013129048690121925_1327065146844([{"Id":2,"Text":"001"},{"Id":7,"Text":"002"}]); 
</script> 

olması gerektiğini için, JSONP değil biliyorum Ama JSONP normal json isteği değil yapmak istiyorum.

GÜNCELLEME

tüm

Tuhaf birşey (Ben projede kullanılan jQuery V1.5.1 bir hata olduğunu düşünmeye başladım) Ben dataType: "json" kaldırdığınızda, normal bir json istekte olmasıdır yerine json isteği yapmak için nasıl :)

yani, şimdi ben bu beklendiği gibi çalıştığını neden bir açıklamayı kabul edecek (ve dataType ile: biri "json" değil): Şu

$.ajax({ 
     url: u, type: "POST", 
     data: data, 
     success: function (d) { response($.map(d, function (o) { return { label: o.Text, value: o.Text, id: o.Id} })); } 
}); 
+0

ile uyumlu olmayabilir başka jquery eklentisi olup olmadığını kontrol? – nnnnnn

+0

'u', geçerli alan adınıza göre ne zaman dener misiniz? Örneğin:/myapp/areax/... – RvdK

+0

bu bir çapraz etki alanı mı? aynı ana bilgisayar ancak farklı bağlantı noktası olabilir? Bu garip dostum ... –

cevap

2

bug burada: http://bugs.jquery.com/ticket/8118

Muhtemelen jquery doğrulama eklentisi kullanıyorsunuzdur. Jquery-validation eklentisi jQuery 1.5 ile uyumlu değildir ve çakışma burada yaşadığınız sorunun türüne neden olur. Sorun nedeniyle jQuery doğrulama eklentisi için özel olarak değilse

, size tüm parametreler dahil komple URL'yi gösterecek misiniz jQuery 1.5

+0

Evet, bu karşılaştığım tam bir sorun. Şüphelendiğim gibi jQuery'deki hata oldu :) Teşekkürler! –

İlgili konular