quasar.config.js中devServer代理设置不生效,请求未转发至目标服务器
解决Quasar开发环境代理转发失效问题
排查步骤与解决方案
1. 确保axios请求使用相对路径
不要在axios请求中硬编码目标域名,避免绕过代理:
// 正确写法 axios.get('/api/bank') // 错误写法(直接跳过代理) axios.get('http://localhost:9000/api/bank')
若使用axios实例,检查baseURL配置,确保为相对路径:
// 正确配置 const api = axios.create({ baseURL: '' // 或 '/api',保留相对路径特性 }) // 错误配置 const api = axios.create({ baseURL: 'http://localhost:9000' })
2. 验证quasar.config.js的代理配置结构
确保proxy配置位于devServer对象下,推荐使用pathRewrite替代函数式rewrite(功能一致,写法更直观):
module.exports = configure(function (ctx) { return { // 其他配置项... devServer: { port: 9000, proxy: { '/api': { target: 'http://localhost:8082', changeOrigin: true, pathRewrite: { '^/api': '' } } } } } })
检查是否存在拼写错误(如proxy误写),或target地址是否准确。
3. 重启开发服务
修改quasar.config.js后,必须停止当前quasar dev进程并重新启动,否则新的代理配置不会生效。
4. 检查浏览器网络请求
打开浏览器开发者工具(F12)的Network面板:
- 确认请求URL为
http://localhost:9000/api/bank(代理会在后台转发到8082,前端看不到转发后的地址) - 若请求直接显示
http://localhost:8082/bank,说明axios绕过代理直接请求了目标地址,需重新检查axios配置。
内容的提问来源于stack exchange,提问作者Cahit Öncel
相关产品推荐
相关产品推荐

