Vue

Vite构建的Vue项目,开发时的跨域问题

08-11 10:56

开发环境下,前后分离开发请求后端接口时,浏览器因同源策略会拦截请求,遇到跨域的相关问题。


解决方案:Vite 开发代理

1. 在 vite.config.ts 中配置代理

proxy: {

'/api': {

target: 'http://www.mixuempacc.com',

changeOrigin: true, //修改请求头中的 origin

rewrite: (path) => path.replace(/^\/api/, '') //可选:去除 /api 前缀

}

}


2. 前端请求路径写法

// ❌ 错误:直接请求目标地址(会被跨域拦截)

await axios.get('http://www.xxx.com/api.php?op=sms&mobile=xxx')


// ✅ 正确:通过代理请求(以 /api 开头)

await axios.get('/api/api.php', {

params: {

op: 'sms',

mobile: 'xxx'

}

})


3. 代理转发规则

前端请求:/api/api.php?op=sms,代理后实际请求:http://www.xxx.com/api.php?op=sms

前端请求:/api/user/list,代理后实际请求:http://www.xxx.com/user/list


4、注意事项

代理只在开发环境生效

  • npm run dev 时有效
  • npm run build 打包后代理配置不会生效,需要后端配置 CORS 或 Nginx 反向代理


微信小程序
大潇博客 版权所有 Copyright ©2016~2026
京ICP备17004217号-6  合作QQ:284710375
天玺科技