vue使用axios跨域如何解决
此时可以在config/index.js中的proxyTable中添加:
proxyTable: {
"/WebService.asmx": {
target: "http://localhost:12900/jsnf_service/",
logLevel: 'debug',
changeOrigin: true
}
},
这样就可以正常使用axios进行ajax请求了,但这样只能在开发模式下才能使用。打包部署的时候建议使用nginx做代理
如果能支持跨域那就可以使用jsonp来请求了。jsonp实际上就是通过添加script标签来添加的,请求回来的数据也是js格式。axios目前还不支持,只能自己手动创建script标签,把请求的地址赋给script标签的src属性,最后添加到head标签上,等到请求返回再把标签删掉:
jsonpRequest: function (a, e) {
this._ajaxTimer && clearTimeout(this._ajaxTimer);
this._ajaxTimer = setTimeout(function () {
var request_script = document.createElement('script');
request_script.setAttribute("id", "request_script");
request_script.src = 'http://xxxx'+'&t=' + Date.now();
window.callback = function (response) {
// 移除脚本
document.body.removeChild(document.getElementById('request_script'));
console.log(response.content);
}
document.body.appendChild(request_script);
}, 500);
},
6 回答2.9k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
4 回答2.6k 阅读
2 回答963 阅读✓ 已解决
跨域跟vue没什么关系吧,配置服务器的cros,或者jsonp,常用的跨域解决方案就可以了