6

多くのAJAX呼び出し(主にJSON)を行う既存のjQueryプラグインがあります。クロスサイト呼び出しを許可するのに最も速い方法は何でしょうか。つまり、$。getと$.postのURLは同じドメインからのものではありません。

JSONPについて聞いたことがありますが、プロセス全体を実行するための具体的な例を誰かに教えてもらえないかと考えていました。スクリプトに可能な限り最小限の変更を加えたいと思います。ある種のproxy.phpを使用する必要がありますか?

お時間をいただきありがとうございます。

4

3 に答える 3

13

JSONPを使用すると、クロスサイト呼び出しを行うことができます。その点については、jQueryのドキュメントを参照してください。

概念は単純です。通常のAjax呼び出しを行う代わりに、jQueryは<script>タグをに追加します<head>。これを機能させるには、JSONデータを関数呼び出しでラップする必要があります。

サーバーは次のような方法で情報を送信する必要があります(PHPの例)。

$json = json_encode($data);
echo $_GET['jsonp_callback'] . '(' . $json . ');';

次に、jQueryを使用してその情報を取得できます。

$.ajax({
  dataType: 'jsonp',
  jsonp: 'jsonp_callback',
  url: 'http://myotherserver.com/getdata',
  success: function () {
    // do stuff
  },
});

詳細については、こちらをご覧ください:JSONPとは何ですか?

于 2009-07-29T02:43:30.620 に答える
2

リモートドメインを制御できる場合、またはリモートドメインに許容クロスドメイン.xmlがある場合は、 jQueryプラグインと組み合わせてflXHRなどのライブラリにドロップできます。

于 2009-07-29T02:42:40.700 に答える
1

JSONPの代わりにCORSを使用することもでき、ff、chrome、safariで動作します。CORSはセットアップの手間が少なく、サーバー側のフィルターのみが必要です。

この記事を読んでください。よく説明されており、同様です。唯一の制約は、IEがこれをサポートしておらず、古いバージョンのFF、chromeにもいくつかの問題があることです。

http://techblog.constantcontact.com/software-development/using-cors-for-cross-domain-ajax-requests/

于 2013-07-28T08:39:35.603 に答える