我已經爲一個項目創建了一個小的JavaScript庫,並且在這個庫中我有一個函數可以檢測我們是否在404頁面上。XHR捕獲404錯誤
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
if (this.status == 404) {
console.log("404 detected");
}
}
}
xhr.open('HEAD', window.location.href);
xhr.send();
它適用於大多數情況。但是我有一個問題。
當我通過POST查詢到達頁面時,該函數告訴我這是一個404頁面。我認爲這是因爲xhr請求嘗試使用經典的GET查詢調用頁面(爲了不重新提交表單),然後webapp返回404,因爲該頁面不接受GET查詢。
我試圖找到一種方法來檢測當我在這種情況下,然後,不要觸發「404檢測到」。我不知道這是甚至可能與JavaScript。
任何想法?
您目前正在用'HEAD'方法發送它。也許該服務器只接受該路由上的「POST」,並返回一個404到其他地方。嘗試使用'POST'發送它 – litelite
@litelite:問題是我可以檢測在JavaScript中調用了哪個協議頁面。 – Xavierh95