#jquery #file #exists
Вопрос:
Я использую библиотеку jquery для загрузки содержимого html — файла. Что-то вроде этого:
$(«#Основной»).загрузка(«login.html»)
Если файл (в данном случае ‘login.html’) не существует, я хотел бы обнаружить его, чтобы, например, перенаправить пользователя на страницу с ошибкой. Есть идеи, как я могу определить, существует ли загружаемый файл или нет?
Ответ №1:
Вы можете использовать событие ajaxComplete, которое предоставляет вам доступ к объекту xhr, по которому вы можете запросить статус запроса, например, статус 404 будет означать, что файл не существует.
Более подробная информация в документах http://docs.jquery.com/Ajax/ajaxComplete#callback
Проверьте здесь http://pastebin.me/48f32a74927bb
например
$("#someDivId").ajaxComplete(function(request, settings){
if (settings.status===404){
//redirect here
}
});
Ответ №2:
Решение @PConroy работает, но оно делает то же самое для всех неудачных запросов ajax.
Если вам это нужно для каждого запроса — то есть, если первый запрос завершится неудачно, он перейдет на страницу X, а если второй завершится неудачно, то вам нужно сделать это с помощью дескриптора ошибок в функции $.ajax:
(для редактирования: http://jsbin.com/iwume/edit)
Комментарии:
1. Вы должны показать основы решения здесь, а не требовать, чтобы люди переходили по ссылке. Ссылки хороши для предоставления дополнительной информации, но в самом ответе должно быть достаточно информации.