uni-app H5跨域设置(本地调试可用)

本文介绍了uni-app在本地调试时的H5跨域设置方法,需修改manifest.json文件添加'h5'节点,并将请求URL由实际域名替换为'/apis',但发布后需在服务器端配置跨域。

注意 :这个方法只能本地调试使用

发布后需要跨域 需要设置服务器允许跨域

首先找到 manifest.json 这个文件,在项目目录的src文件夹下,添加 "h5" 节点

"h5": {
		"devServer": {
			"https": false,
			"port": 8080,
			"proxy": {
				"/apis": {
					"target": "https://www.ucharts.cn",
					"changeOrigin": true,
					"secure": false,
					"pathRewrite": {
						"^/apis": ""
					}
				}
			}
		}
	},

 然后发起请求,注意:原来的 "https://我的域名.com" 需要替换成 "/apis"

uni.request({
					url: '/apis/map.json',
					data:{
					},
					success: function(res) {
						console.log(res.data.features)
						let cMap={series:[]};
						//这里我后台返回的是数组,所以用等于,如果您后台返回的是单条数据,需要push进去
						cMap.series=res.data.features;
						_self.showMap("canvasMap",cMap);
					},
					fail: () => {
						_self.tips="网络错误,小程序端请检查合法域名";
					},
				});

 

成功返回数据,问题解决 ~

### 配置 Nginx 实现 uni-app H5 应用的反向代理 为了使 uni-app 开发H5 应用能够正常运行并通过 Nginx 解决问题,可以按照以下方式配置 Nginx 的反向代理功能。 #### 1. 修改路由模式为 `history` 并检查基础路径 在 uni-app 中,默认情况下前端框架可能使用的是 `hash` 路由模式。如果希望切换到更友好的 URL 形式,则需要将路由模式改为 `history` 模式,并确保基础路径正确设置[^3]。 ```javascript // 在 main.js 或其他初始化文件中设置 Vue Router 模式 const router = new VueRouter({ mode: 'history', base: '/your-base-path/', // 如果有特定的基础路径,请在此处指定 routes, }); ``` #### 2. 配置 Nginx 反向代理 以下是针对 uni-app H5 应用的一个典型 Nginx 配置示例: ```nginx server { listen 80; server_name your-domain.com; root /path/to/your/h5/dist; # 替换为实际项目构建后的静态资源路径 index index.html; location / { try_files $uri $uri/ /index.html; # 处理 SPA 单页应用刷新时的 404 错误 } # 设置 API 接口的反向代理 location /api/ { proxy_pass http://backend-server-address/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } ``` 上述配置中的 `/api/` 是一个典型的接口前缀,用于匹配所有的后端请求并将它们转发给目标服务器。这里的 `http://backend-server-address/` 需要替换为目标后端服务的实际地址[^4]。 #### 3. 测试配置有效性 完成以上配置之后,可以通过执行以下命令测试 Nginx 配置的有效性并重新加载服务: ```bash sudo nginx -t sudo systemctl reload nginx ``` #### 4. 注意事项 - **处理**:即使设置了反向代理,在某些场景下仍需确认后端是否允许 CORS 请求。通常建议通过 Nginx 完成统一的名映射以规避显式的问题[^1]。 - **性能优化**:对于高并发环境下的生产部署,可考虑启用缓存机制或其他性能调优手段来提升响应速度。 --- ### 示例代码片段 以下是一个简单的 `vue.config.js` 文件示例,用于本地开发阶段的反向代理配置(适用于调试期间): ```javascript module.exports = { devServer: { proxy: { '/api': { target: 'http://localhost:7788', // 后端服务的真实地址 ws: true, // 是否支持 WebSocket changeOrigin: true, // 更改源信息以便于后端识别 pathRewrite: { '^/api': '' } // 移除前置路径 }, '/foo': { target: 'http://localhost:3001' } } } }; ``` 此配置仅限于开发环境中使用,而正式上线时应依赖 Nginx 进行全局代理管理。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ougexingfuba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值