私はプロジェクト用の小さな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クエリー(フォームを再提出しないように)を呼び出してページをGETクエリーを受け入れないためにWebアプリケーションが404を返すためです。
私はこの場合に検出する方法を見つけようとしていますが、「404検出」を発生させないでください。これがjavascriptでも可能かどうかわかりません。
アイデア?
あなたは現在、 'HEAD'メソッドで送信しています。サーバーはそのルート上で 'POST'を受け入れ、他のものに404を返します。 'POST'で送信してみてください – litelite
@liteite:問題は、ページがJavaScriptで呼び出されたプロトコルを検出できることです。 – Xavierh95