SORU
23 ŞUBAT 2011, ÇARŞAMBA


Erişim IE script jQuery engellendi

Bir iframe jQuery 1.4.2 komut dosyası kullanıyorum. Aynı iframe de http https site içine enjekte edilir. JQuery komut göreli bir yol (örneğin, /scripts/jquery-1.4.2.min.js olarak ana HTML dosyasına eklenir.

Bir AJAX çağrısı yapıldığında, Internet Explorer erişimi engeller. AJAX başka bir alt diyor ama doğru protokolü kullanıyor. Diğer tüm tarayıcılarda çalışır ama Internet Explorer aşağıdaki hata verir:

SCRİPT5: Erişim engellendi.
bir WordPress kullanmak-1.4.2.min.js çizgi 127 karakter 344

Bu hata, çapraz etki alanından duydum AJAX çağırır. Ama neden sadece beni sinir ediyordu YANİ? YANİ bir çözüm var mı?

Ayrıca, bu benim AJAX:

 $.ajax({
     url: thisURL,
     dataType: "json",
     data: {cmd : 'getMessage', uurl: urlVar, t: Math.random()},
     success: function(ret){
         callback(ret)
     }
 });

CEVAP
23 ŞUBAT 2011, ÇARŞAMBA


Çapraz site için XHR yerine XDomainRequest kullanmak gerekir YANİ, bir şey gibi çalışır

if ($.browser.msie && window.XDomainRequest) {
            // Use Microsoft XDR
            var xdr = new XDomainRequest();
            xdr.open("get", url);
            xdr.onload = function() {
                // XDomainRequest doesn't provide responseXml, so if you need it:
                var dom = new ActiveXObject("Microsoft.XMLDOM");
                dom.async = false;
                dom.loadXML(xdr.responseText);
            };
            xdr.send();
        } else {
            // your ajax request here
            $$.ajax({
                   url: thisURL,
                   dataType: "json",
                   data: {cmd : 'getMessage', uurl: urlVar, t: Math.random()},
                   success: function(ret){
                               callback(ret)
                    }
            });

        }

Başvuru

http://forum.jquery.com/topic/cross-domain-ajax-and-ie

senaryonuza uygun olup olmadığını emin değilim

xdr = new XDomainRequest(); 
xdr.onload=function()
{
    alert(xdr.responseText);
}
xdr.open("GET", thisUrl); //thisURl ->your cross domain request URL 
//pass your data here
xdr.send([data]); 

biraz daha rehberlik here bulabilirsiniz

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS North America

    ASUS North A

    12 AĞUSTOS 2008
  • Fuse

    Fuse

    21 Kasım 2005
  • Trulia

    Trulia

    29 Kasım 2006