XMLHttpRequest, ou seja, AJAX, sem o XML.
A maneira precisa de fazer isso depende da estrutura JavaScript que você está usando, mas se desconsiderarmos os problemas de interoperabilidade, seu código será semelhante a:
var cliente = novo XMLHttpRequest ();
client.open ('GET', '/foo.txt');
client.onreadystatechange = function () {
alerta (client.responseText);
}
client.send ();
Normalmente, no entanto, o XMLHttpRequest não está disponível em todas as plataformas, portanto, alguns truques são feitos. Mais uma vez, sua melhor aposta é usar uma estrutura AJAX como o jQuery.
Uma consideração extra: isso funcionará apenas enquanto foo.txt estiver no mesmo domínio. Se estiver em um domínio diferente, as políticas de segurança da mesma origem impedirão que você leia o resultado.
if (client.readyState === 4){ }
client.onloadend
e obter os dados completos #client.readyState
valor da propriedade. Estou com voto negativo até que seja, as pessoas não vão ler os comentários para descobrir que a resposta é apenas parcialmente correta.aqui está como eu fiz isso no jquery:
fonte
file://
ou seja:file:///example.com/foo.html
. O Firefox reclama de um erro de sintaxe e o Chrome bloqueia porque o considera uma solicitação de origem cruzada.dataType
parâmetro, consulte api.jquery.com/jQuery.get/http://...
parte, porque ela vive no mesmo domínio, funcionará, por exemplojQuery.get("foo.txt", ...)
.Atualização 2019: Usando a busca:
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
fonte
response.ok
(ou equivalente) em algum lugar do seu código? Como não tenho muita experiênciafetch
, não sei o local exato para defini-lo.Se você quiser apenas uma sequência constante do arquivo de texto, inclua-a como JavaScript:
A sequência carregada do arquivo se torna acessível ao JavaScript depois de carregada. O caractere `(backtick) inicia e termina um literal de modelo , permitindo caracteres" e "no seu bloco de texto.
Essa abordagem funciona bem quando você está tentando carregar um arquivo localmente, pois o Chrome não permite o AJAX em URLs com o
file://
esquema.fonte
Uma coisa a ter em mente é que o Javascript é executado no cliente, e não no servidor. Você realmente não pode "carregar um arquivo" do servidor em Javascript. O que acontece é que o Javascript envia uma solicitação ao servidor, e o servidor envia de volta o conteúdo do arquivo solicitado. Como o Javascript recebe o conteúdo? É para isso que serve a função de retorno de chamada. No caso de Edward, isso é
e no caso de danb, é
Essa função é chamada sempre que os dados chegam. A versão do jQuery usa implicitamente o Ajax, apenas facilita a codificação, encapsulando esse código na biblioteca.
fonte
Atualização 2020: Usando a busca com async / waitit
Observe que
await
só pode ser usado em umaasync
função. Um exemplo mais longo pode serfonte
Isso deve funcionar em quase todos os navegadores:
Além disso, há a nova
Fetch
API:fonte
Ao trabalhar com jQuery, em vez de usar
jQuery.get
, por exemplovocê pode usar o
.load
que lhe dá uma forma muito mais condensada:.load
também oferece a opção de carregar páginas parciais que podem ser úteis, consulte api.jquery.com/load/ .fonte
Se sua entrada foi estruturada como XML, você poderia usar a
importXML
função (Mais informações aqui em quirksmode ).Se não for XML e não houver uma função equivalente para importar texto sem formatação, você poderá abri-lo em um iframe oculto e ler o conteúdo a partir daí.
fonte