2012-04-11 6 views
6

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

私はjQuery.ajaxを使用しようとしているが、私は別のドメインにリダイレクトを使用していURLです。これが起こると、私はエラーになります。ブラウザがリダイレクトに従うように特別なことはありますか?

Iはすでににリダイレクトされている第二のドメインのヘッダにaccess-control-allow-origin: *を添加しました。

+0

あなたのコードとあなたが表示されるエラーを追加することはできますか? –

+0

あなたのajax内の他のドメインからデータを取得することはできません。 –

答えて

0

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

はjQueryのでは、 'JSONP' にご .ajax()データ型を設定します。ここを参照してください: http://api.jquery.com/jQuery.ajax/

にリダイレクトされ、サーバーがJSONP応答できない場合にそれはまだ、動作しない場合があります。 JSONレスポンスとJSONP応答の差はJSONP応答がJSON文字列を渡す機能を呼び出すコードであるJSON応答が、純粋なJSON文字列であることです。

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

良い議論:Can anyone explain what JSONP is, in layman terms?

+2

Cross-Origin Resource Sharing(CORS)を使用してクロスドメインajaxコールを行うことができ、このテクノロジで作業しました(「access-control-allow-origin:*」ヘッダを参照)。 – vadimk

+0

@vadimk、このアプローチを含む。しかし、問題はクライアント側にあるとポストからは思われます。 CORSを用いた 'access-control-allow-origin'アプローチはサーバー側にあります。サーバーが許可しても、クライアントは許可していませんでした。したがって、JSONP。 –

+0

ジョナサン、私の答えをチェックしてください。解決策は、リダイレクトページに適切な応答ヘッダーがあることを確認することです。 – BigMacAttack

1

HTTPリダイレクトページは、それはまた、アクセス制御ヘッダを必要とすることで、他のHTTPページとして扱われます。リダイレクトページにそれらのリダイレクトページがない場合、リダイレクトされているページに適切な権限があるかどうかをチェックすることはありません。リダイレクトページのLocationヘッダとともに

、またAccess-Control-Allow-Originヘッダを追加し、その関連構成要素(すなわちAccess-Control-Allow-Methodsなど)

+2

あなたの答えにはたくさんの理論があります。あなたが何を言っているかを説明するためのコード行は、傷つけません – abbood

関連する問題