XMLHttpRequest, es decir, AJAX, sin el XML.
La manera precisa de hacerlo depende del marco de JavaScript que esté utilizando, pero si no tenemos en cuenta los problemas de interoperabilidad, su código se verá así:
cliente var = nuevo XMLHttpRequest ();
client.open ('GET', '/foo.txt');
client.onreadystatechange = function () {
alerta (client.responseText);
}
client.send ();
Sin embargo, normalmente hablando, XMLHttpRequest no está disponible en todas las plataformas, por lo que se realiza un poco de falsificación. Una vez más, su mejor opción es usar un marco AJAX como jQuery.
Una consideración adicional: esto solo funcionará mientras foo.txt esté en el mismo dominio. Si está en un dominio diferente, las políticas de seguridad del mismo origen le impedirán leer el resultado.
if (client.readyState === 4){ }
client.onloadend
y obtener los datos completosclient.readyState
valor de la propiedad. Lo rechazo hasta que sea así, la gente no va a leer los comentarios para descubrir que la respuesta es solo parcialmente correcta.así es como lo hice en jquery:
fuente
file://
es decir:file:///example.com/foo.html
. Firefox se queja de un error de sintaxis y de bloques de Chrome porque lo considera una solicitud de origen cruzado.dataType
parámetro, consulte api.jquery.com/jQuery.get/http://...
parte, porque vive en el mismo dominio, funcionará, por ejemplojQuery.get("foo.txt", ...)
.Actualización 2019: Uso de Fetch:
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
fuente
response.ok
(o equivalente) en algún lugar de su código? No tengo mucha experienciafetch
, así que no sé el lugar exacto para configurarlo.Si solo desea una cadena constante del archivo de texto, puede incluirla como JavaScript:
La cadena cargada desde el archivo se vuelve accesible para JavaScript después de ser cargada. El carácter `(retroceso) comienza y finaliza una plantilla literal , permitiendo tanto los caracteres" como "en su bloque de texto.
Este enfoque funciona bien cuando intenta cargar un archivo localmente, ya que Chrome no permitirá AJAX en las URL con el
file://
esquema.fuente
Una cosa a tener en cuenta es que Javascript se ejecuta en el cliente y no en el servidor. Realmente no se puede "cargar un archivo" desde el servidor en Javascript. Lo que sucede es que Javascript envía una solicitud al servidor, y el servidor devuelve el contenido del archivo solicitado. ¿Cómo recibe Javascript los contenidos? Para eso es la función de devolución de llamada. En el caso de Edward, eso es
y en el caso de danb, es
Esta función se llama cada vez que llegan los datos. La versión de jQuery usa Ajax implícitamente, simplemente facilita la codificación encapsulando ese código en la biblioteca.
fuente
Actualización 2020: Uso de Fetch con async / await
Tenga en cuenta que
await
solo se puede usar en unaasync
función. Un ejemplo más largo podría serfuente
Esto debería funcionar en casi todos los navegadores:
Además, está la nueva
Fetch
API:fuente
Cuando se trabaja con jQuery, en lugar de usar
jQuery.get
, p. Ej.podría usar lo
.load
que le da una forma mucho más condensada:.load
también le ofrece la opción de cargar páginas parciales que pueden ser útiles, consulte api.jquery.com/load/ .fuente
Si su entrada fue estructurada como XML, puede usar la
importXML
función. (Más información aquí en quirksmode ).Si no es XML, y no hay una función equivalente para importar texto plano, entonces puede abrirlo en un iframe oculto y luego leer el contenido desde allí.
fuente