首先我检查了是不是vite.config.ts中配置出了问题
/api对了,changeOrigin也打开了,rewrite里api也替换成空白了
然后我又检查了axios.ts
baseURL也确实是‘/api’
接着我开始怀疑是不是vite.config.ts文件没有执行,于是我试着改了server里的open:false,意思是运行后不自动打开网页。
发现果然没有打开。这就意味着vite.config.ts是执行了的。
接着我开始测试server,我设置了server里port:'2000'(原来是5173),发现port也确实变为2000这就说明server也确实执行了
最后我测试代理中的api,将其改成如下代码
proxy: {
"/": {
target: //代理目标的url,
ws: true,
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, " "),
// rewrite: (path) => path.replace('^/api', ''),
},
},
运行发现网页直接没有加载出来,说明代理确实在运行(具体原因后续补上)
既然api匹配成功,但代理确实无效,我开始逐个排除每个选项,除了target,其他的选项是和文档一模一样。于是我开始把怀疑对象放在了target上。
和后端人员经过沟通之后,发现是端口号有问题
更换端口号之后跨域问题消失
注意:每次修改配置,都要重新启动项目
https版本需要加上secure:false