Como verificar se existe um arquivo em javascript?

votos
3

Eu estou usando a biblioteca jQuery para carregar o conteúdo de um arquivo html. Algo assim:

$ ( # Principal). Load ( login.html)

Se o arquivo (neste caso 'login.html') não existe, eu gostaria de detectá-lo para que eu possa redirecionar o usuário para uma página de erro, por exemplo. Alguma idéia de como posso detectar se o arquivo para carregar existe ou não?

Publicado 13/10/2008 em 11:46
fonte usuário
Em outras línguas...                            


2 respostas

votos
12

Você pode usar o evento ajaxComplete, whis lhe dá acesso ao objeto xhr que você pode consultar o status do pedido, por exemplo um status de 404 significará o arquivo não existe.

Mais informações na documentação http://docs.jquery.com/Ajax/ajaxComplete#callback

Teste aqui http://pastebin.me/48f32a74927bb

por exemplo

$("#someDivId").ajaxComplete(function(request, settings){
    if (settings.status===404){
        //redirect here
    }
});
Respondeu 13/10/2008 em 11:52
fonte usuário

votos
1

@ Solução de PConroy funciona, mas ele faz a mesma coisa para todas as solicitações de ajax falharam.

Se você precisa este em uma base por pedido - ou seja, se o primeiro pedido falhar, ele vai para a página X e se o segundo falhar ir para Y, então você precisa fazer isso usando a alça de erro na função de $ .ajax:

http://jsbin.com/iwume

(para editar: http://jsbin.com/iwume/edit )

Respondeu 14/10/2008 em 10:32
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more