Zur Navigation

Ajax: Daten per POST schicken [3]

21 Tilman

Hallo Jörg,

vielen Dank für den Code! Leider funktionierts immer noch nicht. Hier mal der ganze aktuelle Code:
var xmlHttp = createXmlHttpRequestObject();

function createXmlHttpRequestObject()
{
    var xmlHttp = false;
    // Mozilla, Opera, Safari sowie Internet Explorer (ab v7):
    if (typeof XMLHttpRequest != 'undefined') {
        xmlHttp = new XMLHttpRequest();
    }
    // Internet Explorer 6 und älter:
    if (!xmlHttp) {
        try {
            xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
                xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                xmlHttp  = false;
            }
        }
    }
    if(!xmlHttp) {
        alert("Error creating the XMLHttpRequest object.");
    } else {
        return xmlHttp;
    }
}
function ControlPassword()
{

        if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
        {
                newpass = encodeURIComponent(document.getElementById("new_pw").value);
                param='NEWPASS=' + newpass;
xmlHttp.onreadystatechange = getPWS;
xmlHttp.open("POST", "http://test.de/control_pass.php"+'?'+Math.random(), true);

xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", param.length);
xmlHttp.setRequestHeader("Connection", "close");

// make the server request
xmlHttp.send(param);
        }
}

function getPWS()
{
        if(xmlHttp.readyState == 4)
        {
                if(xmlHttp.status == 200)
                {
                        pws = xmlHttp.responseText;
//                        xmlDocumentElement = xmlResponse.documentElement;
//                        helloMessage = xmlDocumentElement.firstChild.data;
                         document.getElementById("pass_status").style.top="210px";
                         document.getElementById("pass_status").style.left="470px";
                         document.getElementById("pass_status").style.display="block";
                        document.getElementById("pass_status").innerHTML = 'gewähltes Passwort: <b>' + pws + '</b><br><br>Bitte beachten Sie, dass Ihr Passwort zwischen 8 und 25 Zeichen enthalten und mindestens ein Groß- und Kleinbuchstabe, ein Sonderzeichen und eine Zahl besitzen muss, um als sicher zu gelten.';


                }
        }

}

21.07.2009 16:26

22 Jörg

Leider funktionierts immer noch nicht

Was genau heißt das? Immer noch Absturz? wenn der IE8 auch auf anderen Seiten abstürzt, hat er wohl eher ein generelles, von dem Script unabhängiges Problem.

Oder stürzt er jetzt nur noch auf dieser Seite ab? oder führt er gar nichts aus? Im letzteren Fall erscheint unten links womöglich ein gelbes Dreieck. Wenn du darauf klickst, erscheint die Fehlerkonsole, die vielleicht einen Annhaltspunkt liefert, wo der IE hängt.

Und mit dem IE7 hatte das Script vorher problemlos funktioniert?

21.07.2009 18:16

23 Tilman

Was genau heißt das? Immer noch Absturz? wenn der IE8 auch auf anderen Seiten abstürzt, hat er wohl eher ein generelles, von dem Script unabhängiges Problem.
War jetzt schnell genug, das Script zu testen, bevor der IE abgestürzt ist. Hat nicht funktioniert, aber auch keine Fehlermeldung gebracht.

Im letzteren Fall erscheint unten links womöglich ein gelbes Dreieck. Wenn du darauf klickst, erscheint die Fehlerkonsole, die vielleicht einen Annhaltspunkt liefert, wo der IE hängt.
Leider nicht :(

Und mit dem IE7 hatte das Script vorher problemlos funktioniert?
Habe es mal an meinem anderen Computer mit IE 7 ausprobiert, hat auch dort nicht funktioniert (Auch wieder keine Fehlermeldung). Liegt anscheinend allgemein am IE.

21.07.2009 19:47

24 Jörg

Kommt der Request denn beim PHP-Script an? wenn nein, ist der Fehler schon beim Aufruf der Funktion zu suchen. Andernfalls in der Bearbeitung der Antwort.

21.07.2009 20:07

25 Tilman

Kommt der Request denn beim PHP-Script an?
Habe es ebengrade ausprobiert... Kommt alles an. Liegt also an der Bearbeitung der Antwort. Das komische ist ja, dass es das erste Mal funktioniert, dann aber nicht mehr.

21.07.2009 20:57

26 Jörg

Ich würd es auch mal testen - aber dazu bräuchte ich das komplette Script - inklusive der PHP-Dateien.

Ansonsten bleib als Vorgehensweise, dass du den Fehler eingrenzt, indem du z.B. mit alert() dir die betreffenden Variablen ausgeben lässt und auf diese Weise feststellen kannst, ab wann der IE hängt.

23.07.2009 01:24

27 Tilman

hier als Download:
http://www.webcode.de/W502394

Habe ebengrade bemerkt, dass diese auf das Script reduzierte Funktion auch im IE funktioniert. Ich schau mir noch mal alles durch...

23.07.2009 13:07 | geändert: 23.07.2009 13:24

28 Jörg

Habe ebengrade bemerkt, dass diese auf das Script reduzierte Funktion auch im IE funktioniert. Ich schau mir noch mal alles durch...

Dann warte ich noch mit dem Herunterladen

und vielleicht findest du auf diese Weise auch den Fehler ;)

23.07.2009 13:28

29 Tilman

Hurra! Es geht jetzt! Der Fehler lag in einer "externen" (so sagt man doch, oder?) JavaScript-Datei. Dort war ein Fehler in einer anderen Ajax-Funktion...

Auf jeden Fall vielen Dank für die Hilfe! Denn ohne die hätte ich den Fehler wohl nicht gefunden.

23.07.2009 13:47

30 Tilman

Oops! Wohl etwas zu früh gefreut. Der im vorherigen Beitrag getestete Code funktioniert leider nicht im IE7 :(

23.07.2009 17:23