var result = eval(request.responseText);
Autsch. Wozu hier das eval(), das in diesem speziellen Fall nichts weiter tut, als das Argument unverändert durchzureichen?
?? Wie kommst du darauf, dass eval hier den Parameter »unverändert durchreicht«?
Es führt den String als JavaScript-Code aus und gibt das Ergebnis der letzten Expression / des letzten Expression Statements zurück. Das, was eval immer macht. Das ergibt in den wenigsten Fällen dasselbe wie der Direktzugriff auf request.responseText.
Mathias