[ajax] problem mit onreadystatechange

Goltergaul

Well-known member
ID: 17553
L
26 April 2006
480
7
Hi ich habe hier folgendes JS und bin am verzweifeln:
Code:
function loadurl(url) {
      try {
            xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP"); 

      }
      catch (e) {
            alert('Ihr Browser unterstützt diese Funktion leider nicht.');
      }

      xmlhttp.onreadystatechange = function (){triggered(xmlhttp);};
      xmlhttp.open("GET", url);
      xmlhttp.send(null);
      document.getElementById("descr").innerHTML = "Loading <img src=\"images/ajax-loader.gif\" />";
}

function triggered(xmlobj) {
      // 0=Uninitialised 1=Loading 2=Loaded 3=Interactive
      if ((xmlobj.readyState == 4) && (xmlobj.status == 200)) {
            document.getElementById("descr").innerHTML = xmlhttp.responseText;
      }
}

ich rufe also das script mit loadurl('test.php'); auf und in meinem Div steht dann Loading mit der animation. Soweit so gut. Aber der responseText wird nicht in das Div geschrieben. Wieso??
Firebug zeigt mir an dass der Request stattfindet und zeigt mir auch die Antwort. kA :(

onreadystatechange scheint nicht zu reagieren. Selbst wenn ich testweise sowas mache:
Code:
function triggered(xmlobj) {
      alert('test');
}

passiert absolut überhaupt garnichts :( Ich finde den Fehler einfach nicht, bin total am verzweifln grade. Js Fehler werden auch keine gemeldet!
 
wie wäre es mit flgendem onreadystatechange-Aufruf
Code:
xmlhttp.onreadystatechange = triggered;

Edit: fütter deinen parameter url mal mit nem kompletten pfad und nicht variabel, sonst habe ich das auch so gemacht, hast du schonmal überprüft ob überhaupt eine AJAX-Verbindung besteht?

hier noch ein code für dich für die RICHTIGE ajax-verbindung:
Code:
  this.connect=function(){
    req=(window.XMLHttpRequest)?new XMLHttpRequest():((window.ActiveXObject)?new ActiveXObject('Microsoft.XMLHTTP'):false);
    alert('Ajax-Verbindungsstatus:\n'+req);
  }
 
Zuletzt bearbeitet:
wie wäre es mit flgendem onreadystatechange-Aufruf
Code:
xmlhttp.onreadystatechange = triggered;
Kommt aufs gleiche raus :/

Edit: fütter deinen parameter url mal mit nem kompletten pfad und nicht variabel, sonst habe ich das auch so gemacht, hast du schonmal überprüft ob überhaupt eine AJAX-Verbindung besteht?
Firebug zeigt mir an dass der Request stattfindet und zeigt mir auch die Antwort. kA
Ja, es geht also definitiv.

Wenn ich jetzt folgendes mache:
Code:
function loadurl(url,dest) {
      xmlhttp=(window.XMLHttpRequest)?new XMLHttpRequest():((window.ActiveXObject)?new ActiveXObject('Microsoft.XMLHTTP'):false);

      xmlhttp.onreadystatechange = triggered;
      xmlhttp.open("GET", url);
      xmlhttp.send(null);
      document.getElementById(dest).innerHTML = xmlhttp.responseText;
}

funktioniert alles! Aber ich habe keine Lade-Überbrückung. Ich habe keine Ahnung wieso das mit dem onreadystatechange nicht geht! Ich teste das mit dem Firefox Browser, sollte also kein Problem sein :/
 
es geht jetzt weil deine callback-funktion mit parameter nicht existiert, nun greift er auf die variable als globale variable zu, mir gefällt es net deswegen habe ich ne klasse draus gebastelt^^

schön, dass du meine verbindung übernopmmen hast, denn teilweise haben dir die klammern gefehlt und so ist es auch schöner, gibt das objekt zurück wenn erfolgreich ansonsten false, es lebe JavaScript (in Java würde sowas ja net gehen :-? )
 
nein nein... onredystatechange funktioniert leider immer noch nicht. Ich hab das Gefühl das liegt an meinen Browser. Was kann das sein?
 
sollte dein Browser Ajax unterstützen kann es auch das onreadystatechange gib doch mal nen link zu ner ganz simplen demoe mit deinem ganzen code
 
das ist bisschen schwierig. 1. ist das ganze nur auf meinem localhost und 2. eingebunden in eine Browsergame Alpha mit Login usw.

Das JS is ~350 Zeilen lang:ugly:

Aber das was das xmlrequest betrifft habe ich ja schob oben gepostet. Leider steh ich total am Schlauch wieso es nicht geht.

https://www.ajaxload.info/ << funkt auch mit Ajax, geht bei mir aber auch nicht (genau die selben Symptome) Fakt ist aber dass genau diese Webseite in genau diesem Browser schoneinmal ging, weil ich mir da so ne Grafik generiert habe. Da bin ich mir 100% sicher. Ich hab absolut keine Ahnung was hier los ist. Ich habe FF sogar schon neu installiert!


Edit: Habe FF jetzt komplett neu installiert (hatte den Profilordner in den Anwendugsdaten übersehen). Nun funktioniert wieder alles :)

Danke trotzdem für die Hilfe !
 
Zuletzt bearbeitet: