JSONP:启用跨域 JSON 通信
由于同源策略,跨域 JSON 通信提出了挑战。 JSONP (JSON with Padding) 的引入是为了解决这个问题。
创建 JSONP 回调 API
要创建 JSONP 回调 API,您需要:
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 服务:
示例:
<code class="html"><script> function receiver(data) { console.log(data); } </script> <script src="data-service.php?callback=receiver"></script></code>
以上是如何用JSONP克服跨域JSON通信?的详细内容。更多信息请关注PHP中文网其他相关文章!