2012-11-20 9 views
10

Dies ist der Code I bin mit wie folgt unten unten:XDomainRequest in IE-Zugang geben Fehler verweigert wird

ich IE9 verwende und bin nicht in der Lage, die Anforderung zu sehen, die in der Registerkarte Netzwerk gesendet. Ich habe Access-Control-Header in der JSP gesetzt, wie:

<% response.setHeader("Access-Control-Allow-Origin", "*");%> 

-Code der AJAX HTML-Inhalt aus der JSP zu erhalten:

if ($.browser.msie && window.XDomainRequest) { 

    var xdr = new window.XDomainRequest(); 
    xdr.open("GET", "http://dev01.org:11110/crs/qw/qw.jsp?&_=" + Math.random()); 
    xdr.contentType = "text/plain"; 
    xdr.timeout = 5000; 
    xdr.onerror = function() { 
     console.log('we have an error!'); 
    } 
    xdr.onprogress = function() { 
     console.log('this sucks!'); 
    }; 
    xdr.ontimeout = function() { 
     console.log('it timed out!'); 
    }; 
    xdr.onopen = function() { 
     console.log('we open the xdomainrequest'); 
    }; 
    xdr.onload = function() { 
     alert(xdr.responseText); 
    }; 
    xdr.send(null); 
} else { ...... } 

Ich erhalte ein Zugriffsfehler verweigert wird. Jede Hilfe würde sehr geschätzt werden!

http://dev01 ... 

Und Sie sollten diese von HTTP-Protokoll tun:

Antwort

1

Anträge müssen Sie tun Anfrage

In Ihrem Beispiel dem gleichen Schema wie die Hosting-Seite ausgerichtet sein.

Zum Beispiel: Wenn Ihre Website, wo js Skript befindet: http://dev.org Sie dies tun können:

xhr = new XDomainRequest(); 
xhr.open("GET", "http://dev01.org?p=1"); 

aber das wirft "Zugriff verweigert":

xhr = new XDomainRequest(); 
xhr.open("GET", "https://dev01.org?p=1"); 
0

Meine Erfahrung mit XDomainRequest ist, dass es nicht respektiert. Stattdessen müssen Sie die Domäne angeben. Dies kann aus dem HTTP_REFERER-Header abgerufen werden, wenn Sie ihn dynamisch generieren müssen, oder wenn Sie nur Anforderungen aus einer Domäne erwarten, die Sie manuell festlegen können. This article might help.

<% response.setHeader("Access-Control-Allow-Origin", "http://dev01.org");%>