首頁 >後端開發 >php教程 >如何用JSONP克服跨域JSON通訊?

如何用JSONP克服跨域JSON通訊?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-22 14:42:50813瀏覽

How to Overcome Cross-Domain JSON Communication with JSONP?

JSONP:啟用跨域 JSON 通訊

由於同源策略,跨域 JSON 通訊提出了挑戰。 JSONP (JSON with Padding) 的引入是為了解決這個問題。

建立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>
此程式碼傳送JavaScript 文件,該檔案呼叫以JSON 資料作為第一個參數的指定回調函數。

使用JSONP 服務

使用JSONP 服務:

  1. 定義回呼函數:<script> JSON 資料。 <strong></script>
  2. 包含 JSONP 服務腳本:
  3. 插入 <script>以服務 URL 和回呼函數名稱作為「callback」參數的標籤。 <strong></script>
範例:

以上是如何用JSONP克服跨域JSON通訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn