You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vite Vanilla JS项目API代理配置不生效问题求助

Vite Vanilla JS项目API代理配置不生效问题求助

嘿,我仔细看了你的问题和代码,代理没生效的问题根源其实就在vite.config.js的rewrite规则里,咱一步步来解决:

问题根源

你当前的rewrite函数写法有误:

rewrite: (path) => path.replace(/^\/api/), 

replace方法需要两个参数(匹配规则+替换内容),你只传了匹配的正则,相当于把/api替换成了undefined,这会导致代理路径解析异常,甚至直接没触发正确的代理转发逻辑。

修正方案

1. 修复vite代理配置

把vite.config.js里的proxy部分的rewrite规则改成下面这样:

server: {
  host: "0.0.0.0",
  proxy: {
    "/api": {
      target: "http://127.0.0.1:29985",  // 你的后端目标地址
      changeOrigin: true, 
      secure: false, 
      rewrite: (path) => path.replace(/^\/api/, ''), // 把开头的/api替换为空,转发到后端的路径就是/Home/getdayoff
    },
  },
},

这个修改的作用是:当你前端请求/api/Home/getdayoff时,vite会把路径重写为/Home/getdayoff,然后转发到http://127.0.0.1:29985/Home/getdayoff,完美匹配后端接口路径。

2. 几个关键排查点

  • 重启开发服务器:修改vite.config.js后必须重启npm run dev,不然配置不会生效,这个小细节经常被忽略!
  • 确认后端服务状态:先直接用浏览器或Postman访问http://127.0.0.1:29985/Home/getdayoff(如果后端接口本身带/api前缀就改成http://127.0.0.1:29985/api/Home/getdayoff),确保后端接口能正常返回数据。
  • 检查axios全局配置:确认你没有给axios全局设置错误的baseURL(比如不小心设成了http://localhost:5173),如果有全局配置的话会覆盖相对路径的代理逻辑,你当前的请求代码用/api/Home/getdayoff这种相对路径是没问题的。

3. 验证修改效果

重启开发服务器后,再触发接口请求,打开浏览器开发者工具的Network面板:

  • 正常情况下,Request URL会显示http://localhost:5173/api/Home/getdayoff(浏览器显示的是前端服务地址),但实际转发的地址是http://127.0.0.1:29985/Home/getdayoff,你可以在vite的终端日志里看到代理转发的记录。

如果还是有500错误,那大概率是后端接口的路径或者权限问题,这时候可以直接测试后端原生接口的可用性哦。

备注:内容来源于stack exchange,提问作者TomLee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 09:33:00