IE & Ajax

pcw

Lt. Commander
Registriert
Juli 2001
Beiträge
1.676
Ich hab mir ne art Gästebuch mit Ajax geschrieben. Allerdings mag der IE mein Script irgendwie nicht. Ich bekomm nach jeweils einem erfolgreichen Versuch immer die Meldung "Systemfehler -1072896748", wenn ich die Funktion erneut aufrufe.

Das Ajax ist fast vollständig aus dem entsprechende Wikipedia-Artikel

Quelltext der betreffenden Funktion:
Code:
function doRequest(url,func)
{
  if (xmlHttp) {
    xmlHttp.open('GET', url, true);
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
            func(xmlHttp.responseText); //<--hier gibts die Fehlermeldung vom IE)
        }
    };
    xmlHttp.send(null);
  }
}

Firefox und Opera arbeiten einwandfrei mit dem Code. Aber wie bekomm ich den IE dazu? Es is ziemlich doof, wenn man in nem Gästebuch immer nur den neuesten Eintrag sehen kann.

Ich hab übrigens auch schon versucht, statt "func" eine fest codierte function aufzurufen, was aber die gleiche Fehlermeldung produziert.
 
Ich bin mir nicht sicher, aber geht das beim IE nicht ein wenig anders, mit DOM?
Ich könnte mir vorstellen, dass der Artikel auf Wikipedia den IE nicht berücksichtigt da sich der eh nicht an Standards hält...

PS: Ist es nicht ein wenig übertrieben, bei einem Gästebuch AJAX zu verwenden? Toll dass du dir die Arbeit machts, AJAX ist ja auch was schönes, aber ehrlich gesagt finde ich es in diesem Fall übertrieben :)

David
 
Nein es ist nicht übertrieben, weil ich es in eine statische HTML-Seite einbinden will. Gehört zu ner Profilseite in ner Community, die ich selber gestalten kann, die aber eben nur aus html und javascript besteht.

Und das in dem Wiki-Artikel funktioniert so schon auch mitm IE. Ich habs ja eigentlich die ganze Zeit getestet, nur irgendwann ging gar nix mehr und ich weiss ned warum o.o
 
Der Fehler entsteht, wenn du eine die Seite anforderst, ohne vorne das Protokoll anzugeben, oder der Mime-Typ der angeforderten Seite nicht korrekt ist.
 
Zuletzt bearbeitet: (Erweiterung)
Hi pcw,

ich habe mir gerade ebenfalls eine Ajax-Klasse geschrieben. Da hatte ich auch ein Problem mit dem IE. Mir half es, wenn ich das XMLHttpRequest - Objekt für jeden Aufruf neu initialisiert habe, ansonsten kam bei mir genau der gleiche Fehler.


Ciao
 
Hallo,

war gerade auch der Verzweiflung nahe, da ich denselben Fehler hatte und wirklich lange probiert und geändert hab.

Hier kommt die mögliche Lösung:
in dem xmlHttp.responseText den Du zückbekommt, sind höchstwahrscheinlich Sonderzeichen (ä,ö,ß,á usw...). Das Http-Request-Objekt vom Internet Explorer wird über new ActiveXObject("Microsoft.XMLHTTP") erzeugt und das kann anscheinend im "ISO-8859-1" nicht mit den Sonderzeichen umgehen.
Deshalb geht es im Firefox und nicht im IE.
Du solltest vor der Rückgabe von xmlHttp.responseText den dortigen Inhalt in UTF-8 umwandeln:

echo mb_convert_encoding("Mäinä schönän Söndärzäichän", "UTF-8", "ISO-8859-1");

Dann ist der Fehler weg :)
 
Zurück
Oben