关于JSONP

背景

最近在学习Vue 但是教程中使用的是线上的接口 所以就不可避免地有跨域的问题 但是教程中解决跨域又是引用的别人的库 所以我就想着 自己封装一个jsonp的函数

关于JSONP 也就是利用了script不受同源策略限制 被某些高手发现 然后广为流传
在我的理解 主要是在全局声明了一个函数 在get请求的时候和后端约定一个名字 例如 http://write.blog.csdn.net/mdeditor?mycallback=helloworld
在这里mycallback是需要和后端约定好的 否则是不奏效的 做过后端的都知道 获取queryString上的键值对 这里的key mycallback 就是开发时就约定好的一个名称
!!!如果想要跨域调取别人的接口 这里的key一定是要和约定的一致的
!!!如果想要跨域调取别人的接口 这里的key一定是要和约定的一致的
!!!如果想要跨域调取别人的接口 这里的key一定是要和约定的一致的

看了别人的代码 (https://github.com/webmodules/jsonp)所以我就说一下我这菜逼的思路
1:首先我们需要知道JSONP只能用于GET请求
2:其次我们的key约定好了的一定得一致
3 : 这个库利用的就是动态创建script标签 来跨域获取一段JS 其实就是执行你全局定义的函数

….感觉自己还是说不清楚 那就贴代码吧
这里写图片描述

在代码里 因为后端约定的是jsonpCallback 所以我这里就用了它

在这里还有一点可以提一提 假如别人的接口是判断了请求头里的host refer…等等的 则前端不管怎样都是拿不到数据的了
需要后端做代理才可以了 代理就是你在你的服务器做一个方法 设置你的host refer…去欺骗别人的接口…..end
今天很残酷 明天还是很残酷

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值