js jsonp方式跨域原理
2017-05-22 本文已影响0人
Cy_bcd3
使用jsonp跨域的原理就是服务端返回一段可执行的js代码
如下面所示
<script src="index.js"></script>
<script src="localhost/getList"></script>
在index.js中有一个 方法为 getList(list);
而在第二script标签中,src引用的js代码来自服务端动态生成的代码。
服务端动态生成的代码:
在这里使用php作为服务端的语言代码
$obj=array("age"=>15,"name"=>"张三");
$json=json_encode($obj);
echo "getList("+$json+")";
从上面代码可以看到,localhost/getList 返回的是一个js方法,里面里面传递了一个json的字符串,由于引用外部js文件扩展名.js不是必须的,
而且script标签 的src 和img标签的src类似,可以访问外部的url,
所以php返回的js代码也可以执行,localhost/getList返回一个getList方法,并且调用,index.js刚好有一个getList方法,所以index.js的getList
方法就会被调用,从而在index.js实现了跨域的访问。