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

  • Dellbear816

    Dellbear816

    4 Mart 2008
  • Makeup Lover

    Makeup Lover

    12 HAZİRAN 2011
  • stewmurray47

    stewmurray47

    1 Kasım 2006