SORU
30 EYLÜL 2010, PERŞEMBE


XMLHttpRequest cannot jQuery ile bir URL yüklemek

Bir "" web sitesi.uzaktan bazı json veri almak için çalışıyorum Bu 99000 web hizmetine bağlantı noktası sonra, 99001 port (http://localhost:99001/index.html) benim web sitesi başlatmak işletiyorum.

Aşağıdaki mesajı alıyorum:

    XMLHttpRequest cannot load http://localhost:99000/Services.svc/ReturnPersons. Origin http://localhost:99001 is not allowed by Access-Control-Allow-Origin.

Eğer ben bir HTML olarak web sayfamı tanıtım dosyasını bile, ben bu olsun:

    XMLHttpRequest cannot load http://localhost:99000/Services.svc/ReturnPersons.Origin null is not allowed by Access-Control-Allow-Origin.

Web hizmeti veri döndürür. Bu gibi verileri yakalamak için deneyin:

var url = "http://localhost:99000/Services.svc/ReturnPersons";
$.getJSON(url, function (data) {
success: readData(data)
});
function readData(data) {
    alert(data[0].FirstName);
}

Ve bu yapı almaya çalışıyorum:

[{"FirstName":"Foo","LastName":"Bar"},{"Hello":"Foo","LastName":"World"}]

Bu hatayı alıyorum neden biliyor musun?

CEVAP
30 EYLÜL 2010, PERŞEMBE


XMLHttpRequest bir crossdomain, sadece "seçenek" bu aşağı gelir hangi bir teknik JSONP denilen olurdu: yapamazsın

İsteği başlatmak için: uzaktan url ile <script> yeni bir etiket Eklemek, ve sonra bir uzak url geri arama işlevi çağıran geçerli bir javascript dosyası verir emin olun. Bazı hizmetler, bu (ve senin geri adım parametreleri ALALIM) desteği.

Bir "" uzaktan isteği ve sadece "geri javascript." iletir alır yerel sunucu, proxy oluşturmak olacaktır diğer kolay yolu

/ayrıca edit:

JQuery yerleşik JSONP desteği, eğer URL içeriyorsa kontrol ederek görüyorum "=? geri" (burada bir WordPress kullanmak yerini alacak mı ? gerçek bir geri arama yöntemi). Ama hala geçerli bir yanıt oluşturmak için uzak sunucuda bu işlem için ihtiyacınız olacak.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • adrianisen

    adrianisen

    25 Kasım 2009
  • BgirlNilaya

    BgirlNilaya

    29 EKİM 2008
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008