request bricht nicht ab

Guten Abend,
ich hab das Problem, dass wenn ich mit AJAX ein request starte, dieser nicht beendet wird selbst wenn ich die Methode abort() aufrufe. Das Übertragen von den Daten funktioniert zwar, aber der Browser zeigt dauerhaft eine Ladeanimation an.
Weiß vllt jemand was es sein könnte, oder soll ich eine Quelltextzusammenfassung posten?
Gruß,
Vito

Das liegt mit Sicherheit nicht am AJAX Request.

japp, ich habe festgestellt, dass mein javascriptdebugprogramm dran schuld war.
aber ich hab jetzt noch einen fehler den ich mir absolut nicht erklären kann. das ist einfach nur unlogisch:
ich starte einen request und setze die eigenschaft onreadystatechange auf eine funktion x. wenn ich in dieser funktion x nun den befehl alert(‚abcdyds‘); setze, dann funktioniert die Anfrage. ansonsten bricht der request wieder nicht ab und ich erhalte auch keine antwort. langsam verzeifel ich…

Ich bin mir ziemlich sicher, dass du den Event nicht auf die Funktion setzt.

? ich bin mir nicht ganz sicher, ob ich dich richtig verstanden habe, aber wenn ich onreadystatechange nicht auf meine funktion gesetzt hätte die in etwa so aussieht:

function (){ alert(readyState); if(readyState==4){ document.write(http.responseText); } } dann würde der alert-befehl auch nicht ausgeführt. Das wird er aber. wenn ich alert weglasse, dann wird auch nichts ausgegeben und firebug zeigt mir an, dass die Anfrage immer noch andauert.

Ich hab nochmal ein bisschen rumgespielt und festgestellt, dass der Teil:

 if(readyState==4){
        document.write(http.responseText);
   }

2 mal ausgeführt wird. und wenn ich oben in der Function alert weglasse ist http.responseText nur ein leerer string.

Was macht denn das document.write da? Du weißt dass du dann das aktuelle Dokument zerstörst?

Ach so, und wie du die Funktion zuweist wird aus deinem Codefragment immer nich nicht deutlich, d.h. es kann nach wie vor sein, dass du etwas falsch machst, denn deine Schilderungen klingen so.

Hab schon mal einen Fehler geunden. Die Anfrage funktioniert aber der Broser zeigt an, dass er immernoch lädt, selbst nachdem er die anfrage ausgegeben hat.

function get(){
    this.request        = function (){
        if(window.XMLHttpRequest){
            http    = new XMLHttpRequest();
        }else if(window.ActiveXObject){
            http    = new ActiveXObject("Microsoft.XMLHTTP");
        }
        
        http.open('GET', 'test.php', true);
        http.onreadystatechange    = function(){
            //alert(http.responseText);
            if(http.readyState==4){
                document.write(http.responseText);
            }
        }
        http.send(null);
        return true;
    }
}
var get=new get();
get.request();

Du willst kein document.write() benutzen, sondern DOM/innerHTML.

Wie schon gesagt, was soll das document.write()?
Damit erzielst du genau diesen Effekt. Und wenn schon, dann muss in diesem Fall nach document.write() ein document.close() kommen. Aber ich bin mir nicht sicher ob du das willst, denn dann brauchst du auch kein AJAX.

Ach so meintest du das! Danke es funktioniert. Aber eine Frage habe ich noch bezüglich der methode push() eines arrays. Ich wollte dem array a einen weiteren Eintrag hinzufügen, der aus einem array besteht

a.push(["a", "b"]);

Wo liegt da der Fehler?

Nirgends, der Code ist so korrekt.

oh, denn liegt mein Fehler woanders, trotzdem Danke!