XMLHttpRequest erzeugt 0x80004005 (NS_ERROR_FAILURE)

  • Hallo,

    ich habe mir schon die Finger wund-gegoogelt..

    Ich nehme das Firefox Standardbeispiel für einen XMLHttpRequest:

    In der Fehlerkonsole sieht man dann:
    Fehler: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: file:///C:/work/workspace/djangoJS/ajtest.html :: tryXHR :: line 9" data: no]

    In diesem Fall wird der Request synchron ausgeführt, die Exception wird geworfen, wenn der Response kommt.
    In der asynchronen Variante ist das genauso - unabhängig von POST/GET/OPTIONS.
    Ich habe dieses Problem mit FF3.6 (Win7) sowie FF3.5 auf Vista und Ubuntu.

    Unter dem Strich kriege ich mit Firefox keinen XMLHttpRequest hin. Ich habe zahlreiche Varianten (Ajax Frameworks) ausprobiert, immer der gleiche Fehler.
    Im Internet Explorer läuft alles problemlos.

    Kann jemand helfen?

    Danke und Gruß, Pit.

  • Hallo,
    nach langen googlen bin ich auf deine mail gestoßen. Ich habe das gleich Problem und suchte nach einer Lösung leider
    vergebens. Ich vermute dass es bis FF 3.0 nicht funktioniert. Ob und wann der Fehler in künftigen FFs behoben wird, muss man abwarten.Bei meinen Versuchen habe ich festgestellt, dass der Fehler bei Konqueror nicht auftritt.
    Mein PC läuft unter Kubuntu 9.04.
    Bin neugierig ob dein Code auf einen anderen Browser läuft?
    tschüss bk

  • Die Fehlermeldung ist völlig allgemein (NS_ERROR_FAILURE = irgendein Fehler). Bei Pit63 war das Problem, dass er sich nicht an die Same-Origin-Policy gehalten hat (=eine Seite darf per XHR nur Daten auf die eigene Domain zugreifen).

    Ohne deinen Code zu sehen (am besten aufs Problem reduziert), kann dir hier niemand helfen.

  • Hallo,
    hier ein kleines Beispiel aus dem Netz das in Konqueror den Text alert"Hello World" anzeigt und Firefox gibt es eine Fehlermeldung:

    Beide Dateien befinden im gleichen Verzeichnis unter /var/www/
    In der Datei "test.txt" steht nur "Hello World!"
    Der im Betreff genannte Fehler tritt hier nicht auf, aber es scheint, dass der Inhalt von "test.txt" nicht geparst wird.

    Wenn man z B. statt "test.txt" eine PHP-Datei aufruft -> req.open("GET","getuser.php?q="+str,false);
    kommt die im Betreff genannte Fehlermeldung.
    Ich vermute deshalb, dass es etwas mit dem Parsen oder mit der Parameterübergabe zu tun hat.
    bk

  • Zitat

    Der im Betreff genannte Fehler tritt hier nicht auf, aber es scheint, dass der Inhalt von "test.txt" nicht geparst wird.

    Der Inhalt der Datei wird hier ausgegeben.

    Zitat

    Wenn man z B. statt "test.txt" eine PHP-Datei aufruft -> req.open("GET","getuser.php?q="+str,false);
    kommt die im Betreff genannte Fehlermeldung.

    Auch das gelingt hier ohne Fehlermeldung.

    Zitat

    Ich vermute deshalb, dass es etwas mit dem Parsen oder mit der Parameterübergabe zu tun hat.

    An welcher Stelle? Welcher URL wird dem Fx letztlich gereicht aus deinem JS-Code? Ist dieser gültig? Was spuckt denn deine php bei händischem Aufruf des URLs aus?

  • Hallo,
    ich habe ein falsches Beispiel verwendet, da bekam in der alert-Popup eine Fehlermeldung. Mit Hilfe von Mozilla Leuten
    konnte ich den Code verbessern und zwar: die req.status(..) wie folgt ändern "if(req.status!=200 && req.status!=0)"

    Was XMLHttpRequest betrifft, folgt das Beispiel

    1.html-Datei
    ===========

    2. die php-Datei
    ==============

    3. Mysql-Datei
    =============


    Wie bereits erwähnt tritt der XMLHttpRequest Fehler nur in FF 3.0 auf, in Konqueror hingegen werden die Werte angezeigt.
    Tschüss bk

  • In einem aktuellen Fx lässt sich der Fehler auch damit nicht reproduzieren. Da du oben die Frage stellst, ob das in späteren Versionen behoben wird, verwende einfach eine aktuelle. Die Serie 3 ist ohnehin gestorben, veraltet und damit in Fragen der Sicherheit fragwürdig.
    Für weitere Beispiele, sie von der Einbindung von Datenbanken ab und reduziere diese auf das Nötigste. Für einfache Beispiele reichen auch Text-Dateien statt PHP und MySQL.