Web 跨域请求
当客户端请求其他网站的资源的时候,不可避免会产生跨域问题。
一个推荐的标准做法是使用 jsonp
调用, jquery.js
, zepto.js
或其他库都内建有 jsonp
请求的方式。jquery
示例:
$.getJSON('http://example.com/page.php?callback=?', function(data) { // do something });
在 url
后加入参数 callback=?
后, jquery
默认会以 jsonp
方式加载。
处了客户端需要以 jsonp
调用之外,在服务器端还需要构造 json
数据,即接收 callback
值。PHP
构造示例:
$data = array( 'a' => 'A', 'b' => 'B', ); echo $GET['callback'] . '(' . json_encode($data) . ')';
注: url
中的 callback=?
表示 jquery
指定随机字符串
使用 require.js
对于一些仅仅提供数据或者独立方法(不依赖于其它模块的方法)的模块,可以简单的用如下方式来定义:
define({ name:"some data" });
这个和 JSON-P 非常像,但是却有一个显著的优点:它使得 JSON-P 数据可以现在静态文件中,而并不需要动态的回调过程。这也使得内容是可 cache 的,而且是 CDN 友好的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论