最近用HBuilder X开发H5项目,调试接口时运行到浏览器产生了跨越问题,网上有很多解决方案,一开始以为是没有效果的,直到试了好多次才解决。
打开项目中manifest.json文件,点击源码视图,下拉找到h5,如果没有就自己写一个,然后进行配置
"h5": {
"devServer": {
"proxy": {
"/api": {
"target": "http://192.168.3.12:9000",
"changeOrigin": true
}
}
}
}
下面是示例请求,一定要跟上面配置对应上
uni.request({
url: "http://192.168.3.12:9000/api/login",
data:{},
header: {},
success: (res) => {}
});
重点来了如果按照上面那样配置是不生效的,最后自己摸索改成下面这样才成功 对,没错,url不能带上http://xxxxxxxx
uni.request({
url: "/api/login",
data:{},
header: {},
success: (res) => {}
});
最后修改一下上面代码,根据环境变量来修改url,开发环境不加http://xxxxxxxx ,直接使用后面的接口名,正式环境则加上域名即可。
uni.request({
url: process.env.NODE_ENV === 'development' ? '/api/login' : 'https://baidu.com/api/login',
data:{},
header: {},
success: (res) => {}
});