いくつかの条件に応じて、応答で Ajax 要求を実行しています。ロケーション (リダイレクト) URL を含む 301 ステータス コードを送信する場合があります。しかし、それを行うとリダイレクトURLへのajaxリクエストがありますが、ajaxリクエストではなく通常のリクエストにしたいです。
それを行う方法はありますか?
それは非常に簡単です。サーバーがリダイレクトを実行する代わりにURLを返し、最後に使用window.location
してjavascriptでリダイレクトを実行したい場合があります:)。
Javascript はリダイレクト応答を見ることができず、ブラウザーがリダイレクトされた URL からの最終的な応答のみを見ることができます。Javascript は、応答の内容を分析することで状況を認識しようとすることができます: おそらく、JSON を期待しているのに HTML を取得します (例: ログインページ :-) )
それを正しく行うには、サービスを変更して、リダイレクト以外の応答コードを Javascript に返す必要があります (たとえば、セッションが期限切れになり、ユーザーが再度ログインする必要がある場合は 401)。