jsonp

来源:互联网 发布:分配网络流量的软件 编辑:程序博客网 时间:2024/06/05 22:40

定义
JSONP(JSON with Padding)是数据格式JSON的一种“使用模式”,可以让网页从别的网域要数据。

基于安全考虑,浏览器是存在同源策略的。所谓同源是指,域名,协议,端口相同。所以就存在着跨域问题。

原理
基于src属性是支持跨域的特性,jsonp就是利用其来解决跨域问题,用script标签。先定义了一个回调方法,然后将其当作url参数的一部分发送到服务端,服务端通过字符串拼接的方式将数据包裹在回调方法中,再返回回来。jQuery中已经直接提供类似的JSONP请求方式,我们只需要按照其定义好调用方式即可进行Http的跨域请求。

$.ajax({                                               url:'http://localhost:2701/home/somejsonp',     dataType: "jsonp",     jsonp: "callback",     success: function (data) {         console.log(data);       }   });

ajax和jsonp其实本质上是不同的东西,虽然jquery将其整合在了一块儿,ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加script标签来调用服务器提供的js脚本

jsonp是一种非强制性协议,或者说它更像是一种方法,如同ajax一样,它也不一定非要用json格式来传递数据,只要返回是内容是可执行的js脚本就行了。

原创粉丝点击