jQuery.ajax呼び出しを使用してjavascriptを介してAPIを呼び出しています。ユーザーが認証されていない場合、APIは401で応答します。この呼び出しについてのみ、このエラーを無視します。
jQueryオプションで説明されているすべてのコールバックオプションを試しましたが、ブラウザコンソール(FirefoxとChromeの両方)にエラーが表示されます。
エラーをトリガーするサンプルコードは次のとおりです。
$.ajax({
type: 'GET',
url: '/url-with-auth',
dataType: 'json',
statusCode: {
401: function (error) {
// simply ignore this error
console.log(error);
}
},
complete: logall,
error: function () {
// simply ignore this error
console.log(error);
},
async: false
}).fail(function () {
// ignore the error and do nothing else
console.log("$.get failed!");
});
これには、ブラウザがユーザーが認証されていないと見なすため、.htaccessファイルで保護されているステージングマシンでユーザー資格情報を再度要求するという副作用もあります。したがって、次の要求では、ユーザーはhttp資格情報を再入力する必要があります。
このエラーを完全に無視する方法はありますか?
編集
現在、完全にキャッシュされたアプリケーション側のHTMLテンプレートがあり、パフォーマンス上の理由からこの動作を維持したいと考えています。レイアウトで変更されるのは現在のユーザーのログイン情報だけなので、ログインしていないユーザーのデフォルトのマークアップを使用して(キャッシュされた)ページをレンダリングし、jQueryを使用してマークアップの関連要素をajax呼び出しによって返されるログイン情報。したがって、ユーザーがログに記録されておらず、ajaxエンドポイントが401を返した場合、何も必要ありませんが、マークアップは同じままである必要があります。
現時点ではすべてが機能していますが、唯一の醜いことは、コンソールに401 javascriptエラーがあり、それを取り除きたいということです。
これが私が話しているメッセージのスクリーンショットです: