6

私は今まで対処する必要がなかった状況にぶつかりました。URLに対してajaxリクエストを行う必要がある顧客がいます。内部的な理由により、そのURLは、ステータスコードにアクセスする必要がある別のURLにリダイレクトされます。この種のマルチリクエストシナリオは、Ajaxリクエストによってネイティブに処理されますか?

jQueryを使用した簡単なテストでは、302を処理し、リダイレクトを実行して、ターゲットページのコンテンツを返します(本番環境ではステータスコードのみが必要ですが、コンテンツは正しいページがアクセスされていることを「証明」するものです)、しかし、これが普遍的に機能することを期待できるという兆候は見つかりません。クライアントが使用するライブラリがある場合は、それがわかりません。さらに、他のクライアントは将来この同じURLを使用する可能性が高く、同じ方法で処理する必要があります。

ありがとう。

4

2 に答える 2

10

処理を行うのは jQuery ではないため、これは普遍的に機能することが期待できます。これは、すべてのライブラリが AJAX 呼び出しに使用する 基になるXmlHtpRequestブラウザー オブジェクトの指定された動作です。

ここで W3C によって指定された動作を見つけることができます

Location ヘッダーによって伝達されるURLオリジンがオリジンと同じオリジンあり、リダイレクトが無限ループの予防措置に違反しない場合は、同一オリジン要求イベント ルールを観察しながら透過的にリダイレクトに従います。XMLHttpRequest

ここで最も関連性の高い部分を強調しましたが、同一オリジン ポリシールールに違反しない限り(同じドメインであってはなりません)、XmlHttpRequest はリダイレクト先の最終ページのコンテンツを取得します。言い換えれば、それはあなたが今jQueryで目にしている振る舞いです...それはjQueryがそれをしていないだけです.

于 2010-11-14T11:37:16.783 に答える
0

ファイアバグを見ると、実際にリダイレクトが発生していることがわかります。すべてのブラウザでこれに依存することはできないというのは正しいと思います。しかし、私の傾向は、最新のブラウザーがhttp接続を処理し、リダイレクトを実行することです。

于 2010-11-12T20:31:17.157 に答える