- 发布:2019-07-02 09:38
- 更新:2021-08-22 21:28
- 阅读:23515
uni-app 的h5 跨域代理无效,怎么解决呀?大佬们
SimpleJalon - 个人承接PHP、uniapp项目,有案例,联系QQ 615773740,不接受外地工作,可付费提供技术支持。添加QQ时务必备注来意以及添加渠道,渠道可以写:`uniapp`
uniapp本地测试跨域应该在 vue.config.js 配置,在项目根目录创建一个 vue.config.js 文件即可。
module.exports = {
/* 部署生产环境和开发环境下的URL:可对当前环境进行区分,baseUrl 从 Vue CLI 3.3 起已弃用,要使用publicPath */
publicPath: "",
assetsDir: "static/lipin",
outputDir: "dist",
runtimeCompiler: true,
productionSourceMap: false,
/* webpack-dev-server 相关配置 */
devServer: {
/* 自动打开浏览器 */
open: true,
/* 设置为0.0.0.0则所有的地址均能访问 */
host: devHost,
port: devPort,
https: false,
hotOnly: false,
/* 使用代理 */
proxy: {
'/': {
/* 目标代理服务器地址 */
target: proxy.target,
/* 允许跨域 */
changeOrigin: proxy.changeOrigin,
},
},
},
}
跨域问题参考:http://ask.dcloud.net.cn/article/35267
关于代理的设置,可以参考文档:https://uniapp.dcloud.io/collocation/manifest?id=devserver 注意Tips部分
注意:本地开发代理是用来本地测试的,不是用来解决线上跨域问题的。
线上环境的跨域问题请在服务端配置(自行百度学习相关知识)。
-
你好 为什么我在manifest.json中配置了h5的代理 但是只在hbuiderx开发工具中运行的时候有效果可以解决跨域,部署到我自己的服务器上运行就报错404;
代码:
"devServer" : {
"https" : false,
"port": 80,
"disableHostCheck": true,
"proxy" : {
"/api" : {
"target" : "http://xxxx:80", //请求的目标域名
"changeOrigin" : true, //是否跨域
"secure" : false, // 设置支持https协议的代理
"pathRewrite": {
"^/api": ""
}
}
}
},2019-12-13 16:42
-
回复 1***@qq.com: 我使用的是axios,baseURL设置 baseURL: process.env.NODE_ENV ==='development' ?"/testApi" : "http://test.testabc.com.cn", manifest.json和楼主格式一样的
2020-06-11 10:46
owocow
对,这个才是正解
2020-06-20 07:42