该文章只讨论由前端来解决跨域!
如果你是早期(比如uview1.8.3 ...... )从uniapp插件市场下载官方代码到本地进行修改,
然后后续的项目是基于之前你封装好的这个base项目来进行开发的话,
再按照网上说的 跨域解决方案 来尝试进行解决的话,可能会有问题。。。
解决方法:
1、从HBuilder X里新建一个 uni-app 默认模板 的项目。
2、然后再把之前项目里的文件一个个复制过来(注意不要替换新项目文件下的 manifest.json 文件,有可能就是该文件导致你们解决跨域一直不生效)
3、直接在新项目的根目录下创建一个 vue.config.js 文件,并在里面配置devServer
module.exports = {
devServer: {
// 调试时允许内网穿透,让外网的人访问到本地调试的H5页面
disableHostCheck: true,
port: 8082,
proxy: {
'/': {
target: "https://xxx.xxx.com",
changeOrigin: true,
pathRewrite: {
'^/': '/'
}
}
},
},
}
4、在 http.interceptor.js(http拦截器)中 不要带上 baseUrl 或者把 baseUrl值设置为空字符串
5、在 http.api.js(http接口API集中管理)中,所有请求路径都要以 "/" 开头
这样当我们写 "/insurer/api/banner/list" 时,
表示从本地的 ”http://localhost:8080/insurer/api/banner/list“
转发到目标地址 ”https://xxx.xxx.com/insurer/api/banner/list“