微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

跨域简单了解(jsonp)

跨域只要协议、域名、端口有任何一个不同,都被当作是不同的域。


因为存在不同的域,在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的。但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的。


jsonpjson+padding,可理解为把JSON填充到一个盒子里。

像这样:callbackFunction(["customername1","customername2"]);

菜鸟教程中的例子,JSONP由两部分组成:回调函数和数据。回调函数是当响应到来时应该在页面调用函数,而数据就是传入回调函数中的JSON数据。js文件载入成功后会执行我们在url参数中指定的函数,并且会把我们需要的json数据作为参数传入。


但是,使用jsonp跨越,只支持GET请求而不支持POST等其它类型的HTTP请求;只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行js调用的问题。


其他跨越方法还有:

CORS

通过修改document.domain来跨子域

使用window.name来进行跨域

使用HTML5中新引进的window.postMessage方法来跨域传送数据

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐