XMLHttpRequest() - Fehler bei Mozilla/Opera
Ich hab mein Problem von weiter oben jetzt so gelst, dass ich mit
XMLHttpRequest() im Hintergrund den Server kontaktiere, funktioniert
unter IE auch einwandfrei.
Unter Mozilla bekomm ich folgenden Fehler:
Fehler: uncaught exception: Die Erlaubnis fr den Aufruf der Methode
XMLHttpRequest.open wurde verweigert
Das aufrufende Dokument ist lokal im Browser aufgerufen:
file:///Y:/test2.htm
Zugreifen will ich nun auf eine Serveranwendung die auf
http://localhost:port/request ansprechbar ist.
Kann es sein, dass die Securitypolicy von Mozilla (auch Opera) das nicht
zult, wegen quasi andere Zieldomain? Oder besteht da ein anderes Problem?
Kann man das umgehen?
lg,
Martin
Der Code dazu:
function loadXMLDoc(url)
{
// branch for native XMLHttpRequest object
if (window.XMLHttpRequest) {
alert("native aufruf");
alert(document.domain);
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send(null);
// branch for IE/Windows ActiveX version
} else if (window.ActiveXObject) {
alert("IE aufruf");
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send();
}
}
}
Date:Thu, 23 Jun 2005 16:31:08 +0200
Author:
|
Re: XMLHttpRequest() - Fehler bei Mozilla/Opera
Martin Mayer wrote:
> Unter Mozilla bekomm ich folgenden Fehler:
> Fehler: uncaught exception: Die Erlaubnis fr den Aufruf der Methode
> XMLHttpRequest.open wurde verweigert
>
> Das aufrufende Dokument ist lokal im Browser aufgerufen:
> file:///Y:/test2.htm
>
> Zugreifen will ich nun auf eine Serveranwendung die auf
> http://localhost:port/request ansprechbar ist.
>
> Kann es sein, dass die Securitypolicy von Mozilla (auch Opera) das nicht
> zult, wegen quasi andere Zieldomain?
Ja.
> Kann man das umgehen?
Mit Mozilla kann man per Script von einer file: URL vom Benutzer die
Erlaubnis erfragen, dem Script mehr Rechte (bzw. Privilegien) zu geben:
var httpRequest;
if (typeof XMLHttpRequest != 'undefined') {
httpRequest = new XMLHttpRequest();
}
if (httpRequest) {
if (typeof netscape != 'undefined' &&
typeof netscape.security != 'undefined' &&
typeof netscape.security.PrivilegeManager != 'undefined') {
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
}
httpRequest.open('GET',
'http://localhost/javascript/test2005062301.xml', true);
httpRequest.onreadystatechange = function () {
if (httpRequest.readyState == 4) {
if (typeof netscape != 'undefined' &&
typeof netscape.security != 'undefined' &&
typeof netscape.security.PrivilegeManager != 'undefined') {
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
}
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
// access responseXML here
alert(httpRequest.responseXML.getElementsByTagName('*').length);
}
};
httpRequest.send(null);
}
Mit Opera ist das aber meines Wissens nicht moeglich.
--
Martin Honnen
http://JavaScript.FAQTs.com/
Date:Thu, 23 Jun 2005 16:59:40 +0200
Author:
|