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

Mary-Kate Olsen
发布: 2024-10-22 14:42:50
原创
713 人浏览过

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. 定义回调函数:创建一个 JavaScript 函数来处理 JSON 数据。
  2. 包含 JSONP 服务脚本:插入 <script>以服务 URL 和回调函数名称作为“callback”参数的标签。</script>

示例:

<code class="html"><script>
    function receiver(data) {
        console.log(data);
    }
</script>
<script src="data-service.php?callback=receiver"></script></code>
登录后复制

以上是如何用JSONP克服跨域JSON通信?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!