uniapp,h5端跨域

这篇博客介绍了如何在uniapp的H5环境中解决跨域问题。通过修改manifest.json文件,设置代理服务器配置,实现了对指定接口的跨域请求。方法与Vue项目的处理相似,只需将vue项目的vite.config.js配置改为了uniapp的manifest.json。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决uniapph5端跨域问题
今天在学习uniapp尝试请求一下接口,结果出现了以下报错。
在这里插入图片描述
很明显,跨域了!
想到之前写vue项目的时候遇到过这种问题,而刚学习的uniapp是基于vue的,所以解决办法应该差不多。
打开manifest.json文件点击源码视图。
在这里插入图片描述
写入这段代码

"h5":{
		"devServer": {
			"proxy": {
				 "/api": {		             
				 "target":"https://exam.cscscscs.top/",
				 "changeOrigin": true,
				 "secure": false,
				 "pathRewrite":{
					 "^/api":"/",
					}
				  }
			}
		}
	},

打开请求接口的文件。
在这里插入图片描述
然后就发现数据请求成功
在这里插入图片描述
之前写vue的一个项目时就遇到过跨域问题
在这里插入图片描述

	//代理服务器配置,请求域名前加上/api,
	//vue3会自动创建一个代理服务器,
	//target配置项是请求接口域名,服务端请求服务端解决同源策略,跨域问题
	//rewrite将axios请求域名截取/api删除

跟uniapp,基本是一模一样,只不过是要修改的文件不一样
vue项目是要修改vite.config.js。
uniapp要修改的是manifest.json。

### 解决 UniApp H5 环境下的请求 #### 配置 `vue.config.js` 文件 为了使开发环境中的问题得到解决,在项目的根目录下创建或编辑 `vue.config.js` 文件,加入代理配置: ```javascript module.exports = { devServer: { disableHostCheck: true, proxy: { "/api": { target: "http://example.com", // 替换成实际的目标API地址 changeOrigin: true, secure: false, ws: false, pathRewrite: { "^/api": "", }, }, }, }, }; ``` 此段代码通过设置 Webpack Dev Server 的代理功能来绕过浏览器的安全策略[^3]。 #### 修改 `manifest.json` 对于生产环境中发布的 H5 应用来说,还需要调整 `manifest.json` 中的相关配置项以适应不同的部署场景: ```json { ... "h5": { "devServer": { "port": 8080, "disableHostCheck": true, "proxy": { "/api": { "target": "http://localhost:8081", "changeOrigin": true, "secure": false, "pathRewrite": {"^/api":""} } } } } } ``` 上述 JSON 片段展示了如何针对 H5 平台指定特定的代理规则,从而确保即使是在正式上线之后也能正常访问远程服务接口[^5]。 #### 封装统一的请求工具类 考虑到不同平台间可能存在差异化的网络通信需求,建议编写一个通用型的 HTTP 请求模块 `request.js` 来处理这些细节: ```javascript const baseURL = process.env.NODE_ENV === 'development' ? '/api' : 'https://your-production-api-domain'; export default function request(url, options) { const fullUrl = `${baseURL}${url}`; return new Promise((resolve, reject) => { uni.request({ url: fullUrl, ...options, success(res) { resolve(res.data); }, fail(err) { reject(err); } }); }); } ``` 这段 JavaScript 实现了一个简单的 Axios 类似的功能,它能够根据当前所处环境自动切换基础 URL,并且提供了简洁易懂的方法签名以便于调用者使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值