美文网首页前端框架
关于vue-resource的jsonp跨域问题

关于vue-resource的jsonp跨域问题

作者: 白鳝 | 来源:发表于2017-01-06 18:18 被阅读1198次

    首先描述一下问题。

    由于特殊原因,在使用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);

    })

    相关文章

      网友评论

        本文标题:关于vue-resource的jsonp跨域问题

        本文链接:https://www.haomeiwen.com/subject/psrxbttx.html