SORU
19 NİSAN 2012, PERŞEMBE


9 İSTASYONDAN verir " ile AJAX jQuery;Erişim engellendi"

Aşağıdaki tüm tarayıcılarda çalışırIE hariç(IE 9'da test ediyorum).

jQuery.support.cors = true;
...
        $.ajax(
            url   "messages/postMessageReadByPersonEmail",
            {
                crossDomain: true,
                data: {
                    messageId       : messageId,
                    personEmail     : personEmail
                },
                success: function() {
                    alert('marked as read');
                },
                error: function(a,b,c) {
                    alert('failed');
                },
                type: 'post'
            }
        );

dataType: 'jsonp', kullanan başka bir işlevi var, ancak herhangi bir veri bu AJAX çağrı üzerine geri döndü ihtiyacım yok. Benim son çare bazı Linux içinde JSONP sadece iş yapmak için sarılı iade edilecektir.

YANİ hiçbir veri döndüren bir İSTASYONDAN bir istek ile bozuyor neden herhangi bir fikir?

CEVAP
19 NİSAN 2012, PERŞEMBE


Bu jQuery ile bug bilinir. JQuery ekibi "hayır çekirdek desteği vermeye planları ve daha iyi bir eklenti olarak uygundur." (this comment). IE yokdeğilkullanımıXMLHttpRequestalternatif adlı nesne , amaXDomainRequest.

Yok8* *bir eklenti jQuery desteği için kullanılabilir: https://github.com/jaubourg/ajaxHooks/blob/master/src/xdr.js

EDİT Fonksiyonu $.ajaxTransport taşıyıcı Fabrikası kaydeder. Bir taşıyıcı kullanılırDAHİLİ olarak$.ajax isteklerini gerçekleştirmek için. Bu Nedenle, Benvarsayalımher zamanki gibi $.ajax aramak gerekir. Nakliyeciler ve $.ajax genişletme hakkında bilgi here bulunabilir.

Ayrıca, bu eklenti belki de daha iyi bir sürüm here bulunabilir.

İki diğer notlar:

  1. Nesne XDomainRequest introduced from IE8 ve sürümleri altında çalışmaz.
  2. IE10 KÖŞELERİ olacak supported using a normal XMLHttpRequest.

Edit 2: http, https için sorun

İstekleri hosting sayfası olarak aynı düzeni hedeflenmiş olmalı

Bu kısıtlama eğer AJAX sayfa olduğunu gösterir http://example.com, sonra hedef URL de HTTP ile başlamalıdır. Eğer AJAX sayfanızı aynı şekilde eğer https://example.com, o zaman senin de hedef URL de HTTPS ile başlamalıdır.

Soruce: http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Matt Steffanina

    Matt Steffan

    1 EYLÜL 2011
  • MrDevin521

    MrDevin521

    18 Temmuz 2010
  • Nightmare2005

    Nightmare200

    14 Ocak 2007