2008-10-13 10 views
3

J'utilise la bibliothèque jquery pour charger le contenu d'un fichier html. Quelque chose comme ceci:Comment vérifier si un fichier existe en javascript?

$ ("# principal") Charge ("login.html")

Si le fichier (dans ce cas 'login.html') n'existe pas, je voudrais détecter. pour que je puisse rediriger l'utilisateur vers une page d'erreur par exemple. Des idées comment je peux détecter si le fichier à charger existe ou non?

Répondre

12

Vous pouvez utiliser l'événement ajaxComplete, vous donne accès à l'objet xhr, vous pouvez interroger l'état de la demande, par exemple un statut de 404 signifie que le fichier n'existe pas.

Plus d'info dans la documentation http://docs.jquery.com/Ajax/ajaxComplete#callback

test ici http://pastebin.me/48f32a74927bb

par exemple

$("#someDivId").ajaxComplete(function(request, settings){ 
    if (settings.status===404){ 
     //redirect here 
    } 
}); 

1

@ solution de PConroy fonctionne, mais il fait la même chose pour toutes les demandes ayant échoué ajax. Si vous en avez besoin par requête, c'est-à-dire si la première demande échoue, elle passe à la page X et si la seconde échoue à Y, vous devez le faire en utilisant le handle d'erreur de la fonction $ .ajax :

http://jsbin.com/iwume

(pour modifier: http://jsbin.com/iwume/edit)

+1

Pas ma solution, vient d'éditer la mise en page du code :) – ConroyP

+1

Vous devriez montrer les bases de la solution ici au lieu d'obliger les gens à cliquer sur un lien. Les liens sont utiles pour fournir des informations supplémentaires, mais la réponse doit contenir suffisamment d'informations. –

Questions connexes