jsonp
同源策略:
动态内容(如javascript)只能阅读与之同源的哪些http应答和cookie。同源指的是域名、协议、端口号相同。但是,<script><img><iframe><link>的src属性可以跨域加载资源。
解决同源策略:
1.利用服务器来请求别的服务器的数据。
2.通过iframe来解决
3.src属性引入 像<script src=""></script>
index.html
<script>
var jsonpFunc = function(json){
for(var i in json){
console.info(json(i));
}
}
</script>
<script src="http://abc.com/test?callback=jsonpFunc"></script>
abc.com/test.php
<?php
$jsondata = "{a:‘a‘,b:‘b‘}";
echo $_GET[‘callback‘].‘(‘.$jsondata.‘)‘;
?>
jsonp工作过程
1.首先在客户端定义一个函数,加载js文件并把这个函数名作为参数值传到服务器。
2.服务器拿到函数的名字,用js执行函数的形式打印出来作为返回,服务器生成的数据作为函数参数。
3.客户端会以<script>标签内内容的形式执行服务器的返回,这样在客户端页面里就能以服务器生成的值为入参来执行回调函数了
缺点:
1.不支持post方式。
2.安全漏洞
安全问题
待续。。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。