Я в настоящее время проверки коды состояния текущей страницы с этим кодом:Handle недоступной страницы (StatusCode)
$.ajax({
type: 'HEAD',
url: window.location.href,
success: function() {
console.log("Ok");
},
error: function() {
console.log("error");
}
});
страница существует, если код ответа находится между 200 - 299 или нет, если кодов ответа в между 400 - 499.
Но для примера ошибка 405 для меня не является ошибкой, страница хорошо отображена, поэтому нет причин быть в состоянии ошибки.
Так что я добавил еще одно испытание:
error: function(jqXHR, textStatus, errorThrown) {
console.log('jqHRX : ' + JSON.stringify(jqXHR) + ' textStatus : ' + textStatus + ' errorThrown : ' + errorThrown);
if (errorThrown != "OK") //or jqHRX.statusText
console.log("error");
}
Для Exemple, если я просматриваю к странице, которая возвращает 405 код, я буду иметь этот результат: jqHRX : {"readyState":4,"responseText":"","status":405,"statusText":"OK"} textStatus : error errorThrown : OK
И если это 404 ошибка: jqHRX : {"readyState":4,"responseText":"","status":404,"statusText":"Not Found"} textStatus : error errorThrown : Not Found error
- Итак, все ли страницы с errorThrown равен "OK" в настоящее время? Я случайно нашел пример 405, поэтому я не знаю, является ли это изолированным случаем или нет.
- Есть ли лучший способ справиться с этим?
Спасибо!
Alex
редактировать: для Exemple, https://developer.chrome.com/home возвращает 405 с моим кодом, но в моем приложении нет необходимости рассматривать это как ошибку.
Странная вещь, вы можете проверить StatusCode с http://tools.seobook.com/server-header-checker/: результат 405 Но если проверить с http://httpstatus.io/ результат 200
Спасибо за ваше время. С вашего комментария я немного расследовал этот рассказ о «методах, которые не допускаются», и я решил, что проблема заключается в моих методах HEAD. С GET у меня есть код состояния 200, который я ожидал! – Kureb