jsonp跨域原理(简单粗暴)

json是一种数据格式。
jsonp 是一种传递数据的方式。
简单来说 带有 callback 的json 就是jsonp。

关于原理,看了many资料稍稍总结下。

利用 script 标签没有跨域限制,当需要调用第三方数据的时候,src属性指向第三方地址带有参数,并提供一个回调函数来接受数据,来传递给服务端,第三方产生响应(服务端返回数据)时将该回调函数作为函数名来包裹json 数据(json padding),浏览器调用回调函数,并解析后 json 对象作为参数

Jsonp的执行过程如下: 首先在客户端注册一个callback (如:’jsoncallback’),
然后把callback的名字(如:jsonp1236827957501)传给服务器。注意:服务端得到 callback的数值后,要用jsonp1236827957501(……)把将要输出的json内容包括起来,此时,服务器生成
json 数据才能被客户端正确 接收。

然后以 javascript 语法的方式,生成一个function, function 名字就是传递上来的参数
‘jsoncallback’的值 jsonp1236827957501 . 最后将 json 数据直接以入参的方式,放置到
function 中,这样就生成了一段 js 语法的文档,返回给客户端。

客户端浏览器,解析script标签,并执行返回的 javascript 文档,此时javascript文档数据,作为参数,
传入到了客户端预先定义好的

callback 函数(如上例中jquery $.ajax()方法封装的的success: function (json))里。
可以说jsonp的方式原理上和

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值