关于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);

})

你可能感兴趣的:(关于vue-resource的jsonp跨域问题)