XMLHttpRequest()

  • hallo, heute habe ich mal wieder ein ganz komisches problem. wenn ich die function mailc_update('remove'); aufrufe. dann soll ein php-script aufgerufen werden, welches eintraege in der datenbank vornimmt. das funktioniert ansich zumindest theoretisch auch ... pranktisch aber nur wenn in der funktion mailc_update das "alert("http://domain.de..." welches mit "// ###### hier" untem im code gekennzeichnet ist, einkommentiert und daher auch ausgefueht wird.

    zum debuggen sind in der response-function (mailc_update_res) auch ein paar alerts eingebaut. der erste kommt immer und gibt nacheinander 1,2,3,4 aus, so wie es auch sein soll. das zweite alert bleib jedoch stummt und gibt keinen status zurueck. wenn man das alert in der request-function einkommentiert, werden alle alerts in der response-function korrekt verarbeitet (status wird mit 200 zureuckgegeben.) und die entsprechende eintraege in der datenbank eingetragen.

    aber warum ist das so?


    also ich hab das jetzt noch einmal getestet mit hilfe von logfiles des webservers ... es ist einfach so, das schlicht uns einfach kein request raus geht ... es sei denn ich schreibe unter dem "reuqest-code" ein alert('bla'); ... ich moechte jedoch vermeiden das bei jedem request ein fenster aufpoppt ;) ich versteht das echt nicht mehr, der code scheint ja ansich zu stimmen.


  • ich hab jetzt die funtion nochmal umgeschrieben, jetzt kommt ab und zu mal ein error

    Code
    Fehler: uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIXMLHttpRequest.send]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: chrome://mailc/content/overlay.js :: mailc_request :: line 62"  data: no]
    Code
    function mailc_request(url){
    		if(!mailc_req)
    		mailc_req = new XMLHttpRequest();
    		mailc_req.overrideMimeType("text/plain");
    		mailc_req.open("GET",url,true);
    		mailc_req.onreadystatechange = function (){if((mailc_req.readyState == 4)&&(mailc_req.status == 200)){eval(mailc_req.responseText);update_status();}};
    		mailc_req.send(null); // <---- line 62
    		}
  • ja, ich habs jetzt gepfuscht ... nicht schoen aber es funktioniert ... es hat offensichtlich ein problem damit, wenn die request-funktion aus der funktion welche beim

    Code
    input[i].addEventListener("click",function(){...},false,true);

    aufgerufen wird ... wenn ich die request-funktion in einer andern funktion aufgerufen wird, funktioniert alles ... sehr komisch