标签:页面 浏览器 运行 主机 http请求 rip js代码 调用 兼容
一、jsonp是什么?
jsonp是解决跨域请求的一种技术。浏览器为了防止CSRF攻击会采用同源策略(协议/主机/端口均相同)限制,对非同源发起http请求(即跨域请求)会被浏览器阻止。
二、jsonp跨域请求的原理?
script标签的src属性不受同源策略限制,用此方式对非同源服务器请求资源,返回的JS代码会调用指定的函数,携带的参数就是所需的数据,这样就完成了跨域请求。
三、原生JS的jsonp跨域请求:
function dosomething(data) { console.log(data)
}
然后创建script标签添加到页面,src设为请求地址,请求地址的参数规定了返回的函数名:
<script src="http://example.com/data.php?callback=dosomething"></script>
最后服务端会返回一段JS代码,它会调用指定的函数,携带的参数就是所需的数据,至此跨域请求就完成了。
dosomething({name:"逐逸"});
四、jQuery的jsonp跨域请求:
这里的success就跟上面的dosomething一样。
$.ajax({ url: "http://example.com/data.php", type: "GET", dataType: "jsonp", //指定服务器返回的数据类型 success: function(data) { console.log(data) } });
五、jsonp的优点与缺点:
标签:页面 浏览器 运行 主机 http请求 rip js代码 调用 兼容
原文地址:https://www.cnblogs.com/joych3n/p/10658233.html