¿Por qué la devolución en el siguiente código AJAX da un resultado indefinido?

Creo que el explorador no admite XMLHttpRequest (), por lo tanto, no funciona. Si está utilizando Internet Explorer, pruebe el siguiente código:

función readfile () {
var xmlhttp = nuevo ActiveXObject (“Microsoft.XMLHTTP”);
// el archivo debe mantenerse en el mismo directorio que la página html.
var file_path = “nombre_archivo.xml”;
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 0) {
alert (“el contenido del archivo leído es” + xmlhttp.responseText);
}más{
alerta (“archivo no leído”);
}
}
xmlhttp.open (‘GET’, file_path, true);
xmlhttp.send (nulo);
}

Tenga en cuenta que el estado será 0, no 200, ya que no es una solicitud HTTP. El código proporcionado por usted debería funcionar en otros exploradores. He leído que en el script vanilla java XMLHttpRequest () puede no funcionar. Si usa los últimos frameworks de script java como jquery, etc., ya lo han manejado.
Puede referir la publicación como a continuación: –
¿Por qué AJAX no funciona en navegadores como IE, Firefox y Safari?
http://stackoverflow.com/questio…
http://stackoverflow.com/questio…

Espero que esto ayude.

Hola aniket

El archivo debe abrirse primero para obtener una respuesta.

Te sugiero que pruebes esto:

función ReadFile (nombre de archivo) {
var xmlo = new XMLHttpRequest ();
xmlo.open (“GET”, nombre de archivo, verdadero);
xmlo.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
SendData (this.responseText);
}
};

xmlo.send (nulo);
}
función SendData (contenido) {
devolver contenido;
}
document.write (ReadFile (“test.txt”));

Esto debería funcionar.