• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit externem Script

Stag

Neues Mitglied
Schönen guten Abend liebe Community =)

Ich versuche über AJAX den Inhalt einer Textdatei auzulesen. Das klappt soweit auch insofern sich der jscode in der html datei befindet.

HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>XMLHttpResponse</title>
        <script type = "text/javascript" src="script.js"></script>
    </head>
    <body>
    <script type = "text/javascript">

    var req = getXMLHttpRequest();
    req.onreadystatechange = test;
    req.open("get", "test.txt", true);
    req.send();


    function getXMLHttpRequest() {
        var httpReq = null;
        if (window.XMLHttpRequest) {
            httpReq = new XMLHttpRequest(); 
        } else if (typeof ActiveXObject != "undefined") {
            httpReq = new ActiveXObject("Microsoft.XMLHTTP");
        }
        return httpReq;
    }

    function test() {
        if (req.readyState == 4) {
            var antwort = req.responseText;
            return document.write(antwort);
        }
    }
        
    </script>
    </body>
</html>
Nun versuche ich den jscode in eine extrene Script Datei zu verpacken aber leider möchte keiner meiner Versuche funktionieren ^^ Vielleicht erkennt Ihr ja wo mein Problem liegt =)

HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>XMLHttpResponse</title>
        <script type = "text/javascript" src="script.js"></script>
    </head>
    <body>
    <script type = "text/javascript">
    sendRequest();
    anzeigen();
        
    </script>
    </body>
</html>
Code:
function getXMLHttpRequest() {
    var httpReq = null;
    if (window.XMLHttpRequest) {
        httpReq = new XMLHttpRequest(); 
    } else if (typeof ActiveXObject != "undefined") {
        httpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return httpReq;
}

function anzeigen() {
    req = getXMLHttpRequest();
    if (req.readyState == 4) {
        var antwort = req.responseText;
        return document.write(antwort);
    }
}

function sendRequest(){
    req = getXMLHttpRequest();
    req.onreadystatechange = anzeigen;
    req.open("get", "test.txt", true);
    req.send();
}
Schonmal vielen Dank für Eure Hilfe =)
 
In der Fehlerkonsole steht:

Fehler: uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIXMLHttpRequest.send]" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: http://localhost/ajaxTest1/script.js :: sendRequest :: line 25" data: no]
 
Sehr Informativ.

Du kannst (meistens) auf die Fehlermeldung klicken, dann siehst du den Quellcode, wo der Fehler auftritt. Wir Wissen nicht was "Line 25" in deinem Code ist.

Aber vermutlich rufst du das Skript mit dem file:// Protokoll auf, das geht nicht. Du musst es über localhost also einem Server aufrufen.

EDIT: ok, du rufst es mittels localhost auf. Dann macht die Fehlermeldung keinen Sinn
 
Ich hab mir den Code nochmal genauer angeschaut. Er enthält einige Probleme. Das Hauptproblem ist, dass du in beiden Funktionen ein neues XMLHttpRequest Objekt erzeugst, d.h. diese haben miteinander nichts zu tun.

Ausserdem ist document.write() hier nicht sinnvoll, du überschreibst komplett das aktuelle Dokument und müßtest es danach auch schliessen. Aber warum dann nicht gleich window.location?
 
Zurück
Oben