关于vue-resource的jsonp跨域问题

首先描述一下问题。

由于特殊原因,在使用jsonp调用跨域请求时,回调函数是写在其中一个params里面,并不和params平级,而vue-resource会自动生成一个callback函数,造成回调函数名称对应不上,一直报错。

简单点说就是:vue-resource不能自定义回调函数名称。

解决路径:翻阅了所有baidu google,找不到解决方法。

一气之下直接去翻看源码,发现源码每次都会自动生产回调函数,而且是强制生成,一怒之下直接修改源码。

找到vue-resource里的jsonpClient方法。

看到callback = '_jsonp'+ Math.random().toString(36).substr(2)

修改为:callback = request.params.callback ||'_jsonp'+ Math.random().toString(36).substr(2)

重新打包,在params里定义自定义回调函数,问题解决。完毕。希望对后面踩坑着有所帮助。

调用方式:this.$http.jsonp(url,{params:{"callback":"jsonPCallback"}}).then(function(response){

console.log(response.body);

})

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作为一名前端开发工程师,我们在开发中经常会遇到跨域这个问题。今天想从跨域的原理说起,接着到解决方案,最后到框架对跨...
    编程知识圈阅读 5,839评论 1 12
  • 本节内容:实现跨域常用的两种方式 —— JSONP 和 CORS 零:跨域报错展示 在非同源情况下,调用 Ajax...
    NathanYangcn阅读 3,275评论 2 12
  • JSONP和跨域 跨域是一位前端工程师经常面对的问题。 面试的时候,面试官会问你一个问题,“解释一下什么是跨域?”...
    brandonxiang阅读 2,574评论 0 7
  • 题目1: 什么是同源策略 浏览器出于安全考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情况下,...
    saintkl阅读 241评论 0 0
  • 周五,一天霾。 听《情非得已》又想起了那句“只怕我自己会爱上你,不敢让自己考得太低。” 1. 昨天晚上做了一个好玩...
    羞羞的麦穗阅读 213评论 0 0