使用若依系统的模板搭建一套自己的系统,再编译H5时一直提示跨域问题,真的很头疼,各种查资料找,网上说的最多的就是在manifest.json中修改配置文件,按照查出来的方法改了,编译后发现根本没起作用 第一种方法:修改manifest.json配置文件
"h5" : {
"template" : "static/index.html",
"devServer" : {
"port" : 9090,
"https" : false,
"proxy": {
"/dev-api": {
"target": "http://192.168.66.8:8080",
"pathRewrite": {
"^/dev-api": "/"
}
}
}
},
}
第二种方法:添加vue.config.js文件配置文件 有说新建一个vue.config.js文件配置跨域,也试了,还是不行 vue.config.js文件内容:
module.exports = {
devServer: {
proxy: {
'/dev-api': {
target: 'http://192.168.66.8:8080',
pathRewrite: {
'^/dev-api': ''
}
}
},
}
}
就很郁闷,到底是哪里出了问题,后来发现,使用第一种方法修改就已经可以,只不过需要两步走,第一种方法修改了manifest.json文件后还需要第二步,在config.js文件中把全局设置的baseUrl域名修改一下 就是接口请求的时候,域名要改为/dev-api,不能是正式域名,因为pathReweite已经帮你转了 在config.js中修改为
baseUrl = process.env.NODE_ENV === 'development' ? '/dev-api' : 'http://www.test.com'
然后uni.request请求的url应该是这样:baseUrl + '/login'
然后浏览器看到的请求地址应该是 http://localhost:9090/login 通过这两步走编译H5后就可以完成跨域请求了。
另外后来验证第二种方法也是可以的,uniapp会识别这个vue.config.js文件,不过manifest.json的优先级要高于vue.config.js文件,我配置的时候文件没有搞对。
记录一次uniapp踩坑
非常感谢大神分享:www.jianshu.com/p/d76e98147…