6

これは一種のクロスドメインの問題ですが、問題はブラウザー (Chrome) がリダイレクトに従っていないように見えることです。代わりに、jQuery ajax 呼び出しには何も返されず、エラーが発生します。

を使用しようとしてjQuery.ajaxいますが、使用している URL が別のドメインにリダイレクトされます。これが発生すると、エラーが発生します。ブラウザがリダイレクトに従うようにするために何か特別なことをする必要がありますか?

access-control-allow-origin: *リダイレクト先の 2 番目のドメインのヘッダーに既に追加しています。

4

2 に答える 2

1

HTTP リダイレクト ページは、アクセス制御ヘッダーも必要とするという点で、他の HTTP ページと同様に扱われます。リダイレクト ページにそれらがない場合、ブラウザは、リダイレクト先のページに適切なアクセス許可があるかどうかを確認することができません。

Locationリダイレクト ページのヘッダーとともに、Access-Control-Allow-Originヘッダーとその関連構成要素 (つまり、Access-Control-Allow-Methodsなど)も追加します。

于 2013-09-14T23:30:06.527 に答える
0

クロスドメインの ajax 呼び出しを取得する唯一の方法は、jsonp を使用することです。

jQuery で、.ajax()dataType を「jsonp」に設定します。ここを参照してください: http://api.jquery.com/jQuery.ajax/

リダイレクト先のサーバーが jsonp 応答に対応していない場合、それでも機能しない可能性があります。json 応答と jsonp 応答の違いは、json 応答は純粋な json 文字列であるのに対し、jsonp 応答は json 文字列を渡す関数を呼び出すコードであることです。

あまりみすぼらしいチュートリアル: http://remysharp.com/2007/10/08/what-is-jsonp/

良い議論:誰でも JSONP とは何かを素人の言葉で説明できますか?

于 2012-04-11T20:48:51.777 に答える