Ajax - mehrere Anfragen
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abschicken
absenden
ahnung
anfrage
antwort
array
aufgabe
aufrufen
code
dienst
fehler
form
funktion
interpret
keller
pfad
pop
post
treten
type
-
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:
Die erste Anfrage wird bearbeitet und ich erhalte eine Antwort, doch die zweite wird anscheinend nicht weggeschickt. Stattdessen steht in der Fehlerkonsole: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 } }
Ich habe keine Ahnung, woran das liegt...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]
Wer kann mir helfen?
Beitrag zuletzt geändert: 17.12.2010 17:56:44 von toolz -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du darfst die 2. Anfrage erst absenden, wenn db.readyState == 4 ist. Davor wirfts bloß Fehler.
-
Das wars!
Das in der interpret- Funktion tut seinen Dienst und schickt auch die zweite Anfrage richtig ab.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()); }
Danke! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage