在vue项目开发中,为了调试方便,我们需要配置跨域代理proxy。根据vue-cli3官方文档,在vue.config.js配置如下
// vue.config.js
module.export={
devServer: {
proxy: {
'/api':{
target: 'http:// your.proxy.site', //
ws: true, // websockets
changeOrigin: true, // needed for virtual hosted sites
pathRewrite: {
'^/api': ''
}
}
}
}
}
结果发现代理无效,浏览器还是会报跨域错误,抓耳挠腮好久,最后终于发现代理写的没有问题,问题是项目异步请求接口中没有拼接 /api
所导致,还有就是接口中本来就是以/api
开头的,这时候会让人很混乱,搞不清哪个是代理地址字符串,哪个是真正接口中的字符串。所以分析对了之后,我用下面的方法:
// vue.config.js
module.export={
devServer: {
proxy: {
'/proxy':{
target: 'http:// your.proxy.site', //
ws: true, // websockets
changeOrigin: true, // needed for virtual hosted sites
pathRewrite: {
'^/proxy': ''
}
}
}
}
}
这样,就不会出现和原有接口中的字符串混乱,然后在接口地址中拼接上 /proxy
,去请求接口,发现问题已经搞定了。