receiveReq.onreadystatechange = addMail(id);
Traditionelles Event-Handling
Häufiger Fehler: Handler-Funktion direkt aufrufen
Du rufst hier die Handlerfunktion in dem Moment auf, wo du eigentlich den readystatechange-Handler registrieren willst.
Als Handler wird der *Rückgabewert* des Funktionsaufrufs addMail(1) verwendet. Der ist undefined, also findet keine Event-Überwachung statt.
Du musst hier eine Funktion zuweisen. Wenn du Parameter übergeben willst, dann mit einer weiteren Funktion:
receiveReq.onreadystatechange = function () {
addMail(id);
};
json_sans_eval.js:
Dieser JSON-Parser ist veraltet. Aktuelle Browser haben längst native Parser. Die sind am schnellsten und sichersten. Nimm daher lieber json2.js bzw. json_parse.js.
* This library should be used whenever security is a concern (when JSON may
* come from an untrusted source), speed is a concern, and erroring on malformed
* JSON is *not* a concern.
Das trifft auf deinen Anwendungsfall anscheinend nicht zu.
Ich denke nicht, dass der Geschwindigkeitsaspekt in deinem Fall ins Gewicht fällt.
Mathias