2012-04-11 20 views
6

Bu, bir etki alanları arası sorun türüdür, ancak sorun tarayıcı (Chrome) yönlendirmeyi takip ediyor gibi görünmüyor. Bunun yerine, jQuery ajax çağrısına hiçbir şey döndürülmez ve bir hata alıyorum.jQuery ajax başka bir etki alanına yönlendiren etki alanına çağrı (takip edilmedi)

jQuery.ajax kullanmayı deniyorum, ancak kullandığım URL başka bir etki alanına yönlendiriyor. Bu olduğunda, bir hata alıyorum. Tarayıcının yönlendirmeyi takip etmesi için yapılması gereken özel bir şey var mı?

Zaten yönlendirilmekte olan ikinci etki alanının başlığına access-control-allow-origin: * ekledim.

+0

kodunuzu ve gördüğünüz hatayı ekleyebilir miyim? –

+0

Ajax'ınızdaki diğer etki alanlarından veri almanıza izin verilmiyor. –

cevap

0

Etki alanları arası ajax çağrısı almanın tek yolu jsonp kullanmaktır.

jQuery'de .ajax() veri türünüzü 'jsonp' olarak ayarlayın. Bakınız: http://api.jquery.com/jQuery.ajax/

Yeniden yönlendirilen sunucu bir jsonp yanıtı sağlayamıyorsa hala çalışmayabilir. Bir json cevabı ile bir jsonp cevabı arasındaki fark, bir json cevabının saf bir json dizgisi olması iken, bir jsonp cevabı, bir json dizgisinde geçen bir işlevi çağıran koddur.

A Pek küçümsenecek değil öğretici: http://remysharp.com/2007/10/08/what-is-jsonp/

iyi bir tartışma: Can anyone explain what JSONP is, in layman terms?

+2

çapraz etki ajax çağrısı Çapraz-Kaynak Kaynak Paylaşımı (CORS) ile mümkündür ve yazar bu teknoloji ile çalıştı ("erişim-izin-izin-kök: *" başlıktan bahsetmişti.) – vadimk

+0

@vadimk, Belki bir cevap verebilirsin Bu yaklaşımı içeren o zaman. Ancak bu yazıdan, sorunun müşteri tarafında olduğu anlaşılıyor. CORS ile 'access-control-allow-origin 'yaklaşımı sunucu tarafındadır. Sunucu izin verse bile, müşteri buna izin vermiyordu. Böylece JSONP. –

+0

Jonathan, cevabımı kontrol et. Çözüm, yönlendirme sayfasının uygun yanıt başlıklarına sahip olduğundan emin olmayı içerir. – BigMacAttack

1

Bir HTTP yönlendirme sayfası aynı zamanda erişim kontrol başlıklarını ihtiyacı olduğunu başka bir HTTP sayfası olarak kabul edilir. Yönlendirme sayfanızda yoksa, tarayıcı, yönlendirilmekte olan sayfanın uygun izinlere sahip olup olmadığını kontrol etmek için hiçbir zaman eline geçmez. Yönlendirme sayfasında Location başlığıyla birlikte

, ayrıca Access-Control-Allow-Origin üstbilgi ekleyin ve ilgili bileşenleri (yani Access-Control-Allow-Methods vs.)

+2

cevabınızda çok fazla teori var ... söylediklerini göstermek için birkaç kod satırı zarar görmez – abbood

İlgili konular