uni-app h5重写代理路径有问题
uni-app h5重写代理路径有问题
操作步骤:
- 请求地址还是携带了/api
预期结果:
- 不携带/api
实际结果:
- 请求地址还是携带了/api
bug描述:
- 代理里面的pathRewrite不能重写掉/api
信息类别 | 详细信息 |
---|---|
产品分类 | uniapp/H5 |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | windows 11 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.8.12 |
浏览器平台 | Firefox |
浏览器版本 | 最新 |
项目创建方式 | HBuilderX |
更多关于uni-app h5重写代理路径有问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
可以的,配置完成之后,重启下
调用
uni.request({
url: ‘/api/mall/list’,
method: ‘GET’,
data: {
},
success: res => {
console.log(res)
},
fail: () => {
},
complete: () => {}
});
代理
“h5”: {
“devServer”: {
“https”:false,
“proxy”: {
“/api”: {
“target”: “http://www.xxx.com”,
“changeOrigin”: true,
“pathRewrite”: {
“^/api”: “/”
}
}
}
}
}
更多关于uni-app h5重写代理路径有问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
请问解决了吗 我也遇到了 请路径去掉 /api 代理也去掉 /api就能正常生效
根据你提供的截图和问题描述,问题出在代理配置的pathRewrite没有生效。在uni-app的H5模式下,代理配置需要特别注意以下几点:
- 你的manifest.json配置中代理设置是正确的,但pathRewrite的写法需要调整:
"pathRewrite": {
"^/api": ""
}
- 确保你的请求地址是以
/api
开头,例如:
uni.request({
url: '/api/user/list' // 必须以/api开头
})
-
检查你的vue.config.js文件(如果有)是否覆盖了manifest.json的代理配置。uni-app H5模式优先使用manifest.json的配置。
-
开发环境下修改代理配置后,需要重新运行项目才能生效。
-
如果仍然不生效,可以尝试在请求拦截器中手动处理:
// 在main.js中
uni.addInterceptor('request', {
invoke(args) {
args.url = args.url.replace('/api', '')
}
})