Uniapp开发H5跨域问题解决

背景故事

还是甲方爸爸,就你事最多。 合作开发一个小程序,提供一个特定的功能。一般来说我们自己干一个小开发是直接原生来写,节约成本就是uniapp开发,一次投入,终身受益的方案。奈何人家是爹,甲方的项目是不分离的项目,使用rem做自适应,PC是这个,H5还是这个。我这边就集成他们的H5,接口地址,两边的url都不一样。关键是领导今天看这个页面可以,按钮放这边,明天看你这个不行,按钮放那边,页面也要不得都得改,每天都在改,你说这着不着得住,着不住嘛,人都要疯。但是呢谁叫我是打工仔呢,觉悟还是要有的,我改,我改,我改改改! 气顺了说说正事,联调的时候,部署到线上这个接口就不通了,会出现跨域问题。就是下面这个图的样子

看多了,一看到这样的就知道跨域了

解决办法

找到你项目根目录的manifest.json文件,找到源码视图,示意图如下:

在你的配置文件增加以下代码: 注意最后不要有,号不然项目报错.改了配置记得重新运行项目。

配置baseUrl,一般请求都会封装,封装的基础路径改成和代理的一样即可

js 复制代码
// 区分环境 ,HbuilderX编辑运行时dev开发环境,发行后自动时生成环境
let baseUrl = {
	env: 'development', // 环境配置 生产环境:production,开发环境:development
	apiVersion: '/v1/services',
	baseUrl:'/h5api',
	// baseUrl: 'http://192.168.2.124:20004',

};

export default baseUrl;

配置的和代理的要一致

json 复制代码
"h5": {
		"router": {
			"mode": "history", //模式不要那个丑的#号
			"base": "/match-wp/" // 项目打包运行的目录名,项目域名不变,目录变的,有需要就是设置这个,跟vue项目一样
		},
		"devServer": {
			"disableHostCheck": true,
			"proxy": {
				"/h5api": {
					"target": "http://192.168.2.131:90", //代理的地址
					"changeOrigin": true, 
					"secure": false,
					"pathRewrite": {
						"^/h5api": "/" //是否替换前缀就是"proxy":下的"/h5api",有些后端接口本身带前缀可以不要这个配置

					}
				}
			}
		}
	}

打完收工

代理配置可以参考vue官方的说明:cli.vuejs.org/zh/config/#...

相关推荐
雪碧聊技术8 小时前
前端项目代码发生改变,如何重新部署到linux服务器?
前端·vue3·centos7·代码更新,重新部署
liulilittle8 小时前
C++ 浮点数封装。
linux·服务器·开发语言·前端·网络·数据库·c++
wordbaby9 小时前
Expo 进阶指南:赋予 TanStack Query “原生感知力” —— 深度解析 AppState 与 NetInfo
前端·react native
Moment9 小时前
从美团全栈化看 AI 冲击:前端转全栈,是自救还是必然 🤔🤔🤔
前端·后端·面试
天问一9 小时前
使用 Vue Router 进行路由定制和调用的示例
前端·javascript·vue.js
韩立学长10 小时前
【开题答辩实录分享】以《基于Vue的非遗文化知识分享平台的设计与实现》为例进行选题答辩实录分享
前端·javascript·vue.js
优弧10 小时前
离开舒适区100天,我后悔了吗?
前端·后端·面试
胡gh11 小时前
css的臂膀,前端动效的利器,还是布局的“隐形陷阱”?
前端·css·html
灵感菇_11 小时前
Flutter Riverpod 完整教程:从入门到实战
前端·flutter·ui·状态管理
用户214118326360211 小时前
紧急修复!Dify CVE-2025-55182 高危漏洞,手把手教你升级避坑
前端