kostenloser Webspace werbefrei: lima-city


Ajax - mehrere Anfragen

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    toolz

    Kostenloser Webspace von toolz

    toolz hat kostenlosen Webspace.

    Hallo!
    Ich benutze nicht so oft ajax, brauche es aber jetzt und stoße schon auf ein Problem. Wenn ich zwei Anfragen direkt hintereinander abschicken will, wie mache ich das?
    Zunächst habe ich es mit zwei send()- Aufrufen versucht, aber dann erhalte ich nur die Antwort auf den letzten. Deshalb habe ich mir einen Keller programmiert, nur wirft der mir einen Fehler aus:
    var db = null;
    var aufgaben = new Array();
    
    // Wird aufgerufen:
    init() {
    	// [Ajax Initalisierung]	
    
    	db.open('POST', 'anfrage.php', true);
    	db.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    	db.onreadystatechange = interpret;
    	db.send("1");
    	aufgaben.push("2");
    
    	// [...]
    }
    
    interpret {
    	// [...]
    	if (aufgaben.length > 0) {
    		db.send(aufgaben.pop()); // Zeile 85, hier tritt der Fehler auf
    	}
    }
    Die erste Anfrage wird bearbeitet und ich erhalte eine Antwort, doch die zweite wird anscheinend nicht weggeschickt. Stattdessen steht in der Fehlerkonsole:
    Fehler: uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIXMLHttpRequest.send]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: pfad.js :: interpret :: line 85"  data: no]
    Ich habe keine Ahnung, woran das liegt...

    Wer kann mir helfen?

    Beitrag zuletzt geändert: 17.12.2010 17:56:44 von toolz
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. t****o

    Du darfst die 2. Anfrage erst absenden, wenn db.readyState == 4 ist. Davor wirfts bloß Fehler.
  4. Autor dieses Themas

    toolz

    Kostenloser Webspace von toolz

    toolz hat kostenlosen Webspace.

    Das wars!
    if (aufgaben.length > 0 && db.readyState == 4) {
    	db.open('POST', 'anfrage.php', true);
    	db.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    	db.onreadystatechange = interpretiere;
    	db.send(aufgaben.pop());
    }
    Das in der interpret- Funktion tut seinen Dienst und schickt auch die zweite Anfrage richtig ab.
    Danke!
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!