同じページに301のリダイレクトを行いますが、末尾にスラッシュを付けたサーバーエンドポイントへのAJAX呼び出しがあります。AJAXで301のリダイレクト - リダイレクトされましたか?
AJAXで呼び出されたときにブラウザがリダイレクトするか、無視しますか?私の場合、それはそれらに従わないが、私はそれがサーバー設定から何かであるかもしれないと思った。
同じページに301のリダイレクトを行いますが、末尾にスラッシュを付けたサーバーエンドポイントへのAJAX呼び出しがあります。AJAXで301のリダイレクト - リダイレクトされましたか?
AJAXで呼び出されたときにブラウザがリダイレクトするか、無視しますか?私の場合、それはそれらに従わないが、私はそれがサーバー設定から何かであるかもしれないと思った。
jqueryを使用している場合は、以下の質問を参照して実装することができます。少し遅れて
How to manage a redirect request after a jQuery Ajax call
How to prevent ajax requests to follow redirects using jQuery
たぶん、この答えはあるが、私は持っていた:デフォルトのjQuery(およびAjaxでのほとんどのライブラリ)に従わないことで、デフォルトではリダイレクトajaxリクエストの301レスポンスと同じ問題。解決策は非常に簡単だった:
Apacheの書き換えルールは次のようなものです:
RewriteRule ^([^/]\w+)/?$ index.php?%{QUERY_STRING} [L,E=MODULE:$1]
あなたのXHRリクエストのURLは次のようにいろいろ書いなります:
/this/is/a/canonical/url + '?param=1¶m=2...'
それは301恒久的に移動につながりますあなたが直接ファイル呼び出し(fi * .php)を使わず、正規URL(fi * .phpのないディレクトリパスのように見える)に書き直すのであれば。
/this/is/a/canonical/url + '/' + '?param=1¶m=2...'
多分これは、誰かを助ける:ちょうどこのようなあなたのXHRリクエスト-URLに/を追加し、この問題を解決するために
。
これは私のためにそれを修正しました、 –
jQueryのAPIドキュメント(http://api.jquery.com/jQuery.ajax/)によると、async:false
(別名シンクモード)はクロスドメインとdataType: "jsonp"
リクエストをサポートしていません。
申し訳ありませんが、これは質問と関係がありますか? –
@EduardLuca申し訳ありませんが、あなたのリダイレクトはドメインを越えていません。 – GlacJAY
別のドメインにまたがる必要はありません。リダイレクトは同じURLにありますが、末尾にスラッシュが付きます。 –
私もこの問題を抱えていました。後続のスラッシュについての示唆は私には分かりました。私はWeb.Configですべてを小文字にする書き換えルールを持っていました。それが私のAJAX呼び出しを台無しにしていました。私はGetResults(301として現れました)と私の書き換え(何らかの未知の理由のために)ポストしていました。結果は404になった小文字のgetresults GETに変更されました。
これは他人に役立つかもしれません。
OK jQueryはリダイレクトに従わないので、わかります。ありがとう。 –
Um、no。 XHRはリダイレクトに透過的に従います。 –
すべてではありません。私は301のリダイレクト設定を持っているし、FFはそれに従わない。しかし、クロムはそうです。 – threejeez