0

サーバーからJSONを取得していますが、ブラウザーにURLを入力すると、JSONデータが表示されます。また、curlを使用してJSONを取得すると、データも表示されます。しかし、ローカルでhtmlページを使用してデータにアクセスしようとすると、エラーが発生します。使ってみました

$.support.cors = true;

それでもエラーが発生します。とにかく、この考えられるクロスドメインの問題を解決できますか?

ありがとう、マット

4

3 に答える 3

0

サーバーがをサポートしている場合は、URLに追加することJSONPでデータを取得できます。getJSON?callback=?

しかし、応答が次のようなjson形式の場合:

{a: 1, b:2}

その場合、ajaxを使用してデータを直接取得することはできません。1つの解決策は、サーバー側でプロキシを作成し、リモートのjsonデータを取得してから、ドメイン間の問題を回避するために再度出力することです。

于 2012-07-02T10:45:37.673 に答える
0

他の回答は適切な代替案(JSONP)を提案していますが、それが機能しない理由を説明するために。

のサポートは、オンにcorsするだけのものではありません。これは、ブラウザとサーバーがサポートしなければならないものです。

詳細については、ここを参照してくださいが、要約すると:

  • サーバーはAccess-Control-Allow-Origin: *ヘッダーを発行する必要があります(または*許可するドメインに合わせて調整する必要があります)。
  • Firefox 3.5、Safari 4、Chrome 3、IE 8、またはOpera12を使用している必要があります。

APIドキュメントjQuery.support.corsでのドキュメントも参照できます。

于 2012-07-02T10:46:41.430 に答える
0

代わりに、クロスドメインリクエストにJSONP(パディング付きのJSON)を使用してください。jsonpの処理(基本的なエラー処理も)を簡単にするために、 jqueryプラグインも参照してください。これが良い例のページです。

于 2012-07-02T10:43:53.747 に答える