加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

通过 JSONP 实现美满跨域

发布时间:2018-09-03 14:59:56 所属栏目:创业 来源:站长网
导读:早年我常常在博客说JSONP,譬喻我的 WordPress 气候插件就是通过JSONP来挪用的气候数据,本日就说说通过JSONP实现跨域的应用~ 什么是JSONP JSONP即JSON with Padding。因为同源计策的限定,XmlHttpRequest只应承哀求当前源(域名、协议、端口)的资源。如

早年我常常在博客说JSONP,譬喻我的WordPress气候插件就是通过JSONP来挪用的气候数据,本日就说说通过JSONP实现跨域的应用~

什么是JSONP
JSONP即JSON with Padding。因为同源计策的限定,XmlHttpRequest只应承哀求当前源(域名、协议、端口)的资源。假如要举办跨域哀求,我们可以通过行使 html的script标志来举办跨域哀求,并在相应中返回要执行的script代码,个中可以直接行使JSON转达javascript工具。这种跨域的通信方法称为JSONP。

对付上面的表明,我们可以简朴这样领略:JSONP就是可以通过JavaScript文件举办跨域通信的方法,譬喻:此刻各大网站风靡的搜刮提醒,搜狗云输入法
留意:JSONP处事器端代码必要充实做好安详法子。

最简朴的JSONP
var JSONP = document.createElement("script") ;
//FF:onload IE:onreadystatechange
JSONP.onload = JSONP.onreadystatechange = function(){
//onreadystatechange,仅IE
if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") {
alert($("#demo").html());
JSONP.onload = JSONP.onreadystatechange = null//请内存,防备IE memory leaks
}
}
JSONP.type = "text/javascript";
JSONP.src = "http://a.pojaaimg.cn/2010/js/jquery.js";
//在head之后添加js文件
document.getElementsByTagName("head")[0].appendChild(JSONP);
简朴表明:我们通过建设script,然后指定它的src等属性,然后插入到head执行
提议:onload、onreadystatechange 写在src赋值之前,防备载入js太快而没有给onload、onreadystatechange 赋值(Image工具在IE下具有此类征象)

JSONP实例
我们可以起首界说一个函数来执行JSONP返回的数据,然后通过JSONP的src传此函数给靠山,举办处理赏罚,返回可执行的函数。譬喻下面代码:

function jsonpHandle(a){
alert(a);
}
var JSONP = document.createElement("script") ;
JSONP.type = "text/javascript";
JSONP.src = "http://www.js8.in/jsonp.php?callback=jsonpHandle";
//在head之后添加js文件
document.getElementsByTagName("head")[0].appendChild(JSONP);
靠山jsonp.php的代码:

echo $_GET["callback"]."('hello,world')";

出处:http://www.js8.in/548.html

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读