2008-10-13 3 views
3

Я использую библиотеку jquery для загрузки содержимого html-файла. Что-то вроде этого:Как проверить, существует ли файл в javascript?

$ ("# Основные") нагрузка ("login.html")

Если файл (в данном случае 'login.html') не существует, я хотел бы обнаружить. так что я могу перенаправить пользователя на страницу с ошибкой, например. Любые идеи, как я могу определить, существует ли файл для загрузки или нет?

ответ

12

Вы можете использовать событие ajaxComplete, которое дает вам доступ к объекту xhr, который вы можете запросить статус запроса, например, статус 404 будет означать, что файл не существует.

Дополнительная информация в документации http://docs.jquery.com/Ajax/ajaxComplete#callback

Test здесь http://pastebin.me/48f32a74927bb

например

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

@ решение PConroy работает, но он делает то же самое для всех неудачных запросов AJAX.

Если вам это нужно на основе запроса - то есть, если первый запрос не удается, он переходит на страницу X, а если второй сбой переходит на Y, вам необходимо сделать это, используя дескриптор ошибки в функции $ .ajax :

http://jsbin.com/iwume

(для редактирования: http://jsbin.com/iwume/edit)

+1

Не моего решения, просто отредактировал расположение кода :) – ConroyP 2008-10-14 09:33:23

Смежные вопросы