跨域之JSONP

跨域之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()函数内部中进行处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值