web-dev-qa-db-ja.com

クロスドメインjsonpの基本的なハウツー

私はこれをここのあちこち見ました。単純な「ハウツー」プルjsonpクロスドメインが必要です。私はjQuery 1.5.1を使用しています。

別のサイトのプログラムで次のことを試しました。

$.getJSON("http://www.mydomain.com/testjson.json?jsoncallback=?", function(data) {
    alert("I'm hitting this.");
}

これはまったく機能しません。

単純なクロスドメインjquery JSONP呼び出しを実行する方法はありますか?

ありがとう

13
user581733

JSONPが成功するには、サーバーの協力が必要です。 JSONPを使用してランダムなページをプルし、それらが成功することを期待することはできません。サーバーは次のことを知る必要があります。

  1. JSON応答ではなく、JSONP応答を作成する必要があります。
  2. 応答をラップする関数の名前を知る必要があります。

サーバーがこれらを知る必要がある理由、またはJSONとJSONPの違いがわからない場合は、それらをよく読んでください。または全体が意味をなさないでしょう。手始めに、 JSONPを簡単に説明できますか?http://en.wikipedia.org/wiki/JSONP を確認してください。

これについてもう少し理解すると、おそらくサーバーが戻ってきていることがわかります

{ "key": 1, "bar": "foo" }

(これは有効なJSONです)ではなく、

someCallback({ "key": 1, "bar": "foo" })

これはJSONP応答です。

13
Matt

これらを試してみると http://terrasus.com/detail.jsp?articleID=396 ステップバイステップでうまくいきます。 jsonp応答を生成する場合は、コールバック値を取得して動的に応答に設定する必要があります。この記事には詳細な説明があります

1
vitralyoz