什么是jsonp?有什么用处?本篇文章就带大家来认识一下jsonp及对jsonp原理的理解,有需要的朋友可以参考一下。
话不多说,我们直接进入正文~
jsonp是什么?
我们从网上可以查到jsonp的定义:JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于
server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML
的
JSON 资料,而这种使用模式就是所谓的 JSONP。其实简单点来说jsonp就是一种轻量级的数据传输格式,用来解决跨域请求问题。
下面我们就来分析一下jsonp的原理
ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的js脚本,利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域。
我们来看一个jsonp的例子:
GoJSONP <script type="text/javascript">
function jsonhandle(data){
alert("age:" + data.age + "name:" + data.name);
}
$(document).ready(function(){
var url = "http://www.practice-zhao.com/student.php?id=1&callback=jsonhandle";
var obj = $('
obj.attr("src",url);
$("body").append(obj);
});