ホームページ  >  記事  >  バックエンド開発  >  JSONP を使用してクロスドメイン JSON 通信を克服するにはどうすればよいですか?

JSONP を使用してクロスドメイン JSON 通信を克服するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-22 14:42:50714ブラウズ

How to Overcome Cross-Domain JSON Communication with JSONP?

JSONP: クロスドメイン JSON 通信の有効化

クロスドメイン JSON 通信は、同一生成元ポリシーによる課題を引き起こします。この問題の解決策として、JSONP (パディング付き JSON) が導入されました。

JSONP コールバック API の作成

JSONP コールバック API を作成するには、次のことを行う必要があります。

  1. コールバック パラメータを受け入れる: GET リクエストで「コールバック」パラメータを受け入れる。
  2. コールバック関数でデータをラップする: サラウンドリクエスト パラメーターで指定されたコールバック関数を使用した JSON データ。

PHP の例:

<code class="php"><?php
$data = '{}';

if (array_key_exists('callback', $_GET)) {
    header('Content-Type: text/javascript; charset=utf8');
    header('Access-Control-Allow-Origin: http://www.example.com/');
    $callback = $_GET['callback'];
    echo $callback . '(' . $data . ');';
} else {
    header('Content-Type: application/json; charset=utf8');
    echo $data;
}
?></code>

このコードは、最初の引数として JSON データを指定したコールバック関数を指定します。

JSONP サービスの使用

JSONP サービスを使用するには:

  1. コールバック関数を定義します: JSON データを処理する JavaScript 関数を作成します。
  2. JSONP サービス スクリプトを含めます: