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实现了跨域的访问。

上一篇 下一篇

猜你喜欢

热点阅读