跨域之JSONP

来源:互联网 发布:梦想小镇怎么同步数据 编辑:程序博客网 时间:2024/06/16 16:11

跨域之JSONP

什么是跨域

客户端与服务器间请求数据时出于安全基于同源策略限制的考虑,不能够跨域访问,所谓跨域就是请求数据时,域名、协议、端口号有一种不一样就被视为跨域。

JSONP的基本原理

JSONP由回调函数和数据两部分组成,回调函数是当响应回来时应该在页面中调用的函数,该回调函数的名字一般在请求时指定的;数据就是传入回调函数的JSON数据;JSONP是被包含在函数调用中的JSON。 
基本原理:是利用<script>标签中的‘src’属性没有跨域限制。

过程

  1. 在客户端定义1个函数 .demo(data) 参数就是服务器返回的数据
  2. 利用src属性没有跨域限制 发送请求,并把事先定义好的回调函数名称通过QueryString方式传递给服务器 
    例如(http://api.douban.com/v2/subject/1109867?callback=demo)
  3. 服务器就可以通过 $GET[“callback”]拿到传递的函数名称,然后通过数据处理,假设处理后的数据为: 
    [{id:1,name:”jack”,age:12},{id:2,name:”rose”,age:15}] 
    那么返回的数据: 
    demo([{id:1,name:”jack”,age:12},{id:2,name:”rose”,age:15}]) 
    4.服务器拿过返回的数据后当做JS代码处理 
    调用demo函数,将服务器返回的数据传入demo()函数内部中进行处理
原创粉丝点击