ホームページ >バックエンド開発 >PHPチュートリアル >jQuery と PHP は、JSONP を使用したクロスオリジン リクエストをどのように促進できますか?
JSONP を使用したクロスオリジン リクエスト: 単純な jQuery、PHP の例
同一オリジン ポリシーによって課される制限に対処する場合、 JSONP は、クロスオリジンリクエストに対する効果的なソリューションとして登場します。この手法を使用すると、潜在的なセキュリティ脆弱性を回避しながら、外部ソースからデータを取得できます。
jQuery と JSONP
jQuery を使用して JSONP リクエストを開始するには、 $.getJSON メソッド。次のコード スニペットに示すように、このメソッドは JSONP リクエストを自動的にトリガーします。
$.getJSON('http://www.example.com/jsonp.php', {firstname: 'Jeff'}, function(res) { alert('Your name is ' + res.fullname); });
PHP と JSONP
サーバー側では、PHP がエンドポイントとして機能します。 JSONP リクエストを処理するため。 $.getJSON メソッドはコールバック パラメーターを URL クエリ文字列に追加し、その後 PHP スクリプトによって処理されます。スクリプトは、次に示すように、コールバック関数でラップされた応答を返します。
<?php $fname = $_GET['firstname']; if ($fname == 'Jeff') { echo $_GET['callback'] . '(' . "{'fullname': 'Jeff Hansen'}" . ')'; } ?>
応答を構築する際の $_GET['callback'] の使用と適切な JSONP 構文に注意してください。これにより、クライアントによって提供されたコールバック関数が応答のカプセル化に使用されることが保証されます。
HTML 結果の処理
提供された例は主に JSON データの交換を示していますが、 JSONP は HTML コンテンツの送信にも使用できることに注意してください。これに対応するには、PHP スクリプトがコールバック関数で HTML をラップし、それを応答として送信するようにするだけです。クライアント側の JavaScript は、必要に応じて HTML を解析してレンダリングできます。
以上がjQuery と PHP は、JSONP を使用したクロスオリジン リクエストをどのように促進できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。