一.设置proxy
首先在项目中创建vue.config.js
注意在ts环境下仍为js结尾
项目配置详情如下:
module.exports ={devServer: {open: false, // 是否自动弹出浏览器页面proxy: {'/api': { // '/api'是代理标识,用于告诉node,url前面是/api的就是使用代理的target: "http://localhost:3000", //目标地址,一般是指后台服务器地址changeOrigin: true, // 是否跨域ws: true, // 是否代理 websocketssecure: false, // 是否https接口// pathRewrite: { // pathRewrite 的作用是把实际Request Url中的'/api'用""代替 如果有则不需要此属性// '^/api': "/api"// }}}}}
二.问题出现
结果运行依然报错
三.解决方案
最后还是出现在axios的默认基本路径的配置和代理发生了冲突,代理本身是将请求基本路径代理到目标基本路径
比如:
项目基本路径是http:localhost:8080
axios 基本路径却设置为http:localhost:3000,
代理目标路径为:http:localhost:3000
此时项目启动仍然报错跨域
所以axios的基本路径要么设置为项目启动路径http:localhost:8080要么设置为空
此时问题解决