【uniapp】uniapp 跨域解决

1.服务端设置CORS

在后端的响应头设置Access-Control-Allow-Origin属性,允许前端的访问:

Access-Control-Allow-Origin: *

2.在HBuilder编辑器中使用内置浏览器运行

使用hbuildex X 编辑器运行到内置浏览器无需考虑跨域问题。

3. (打包上线需配置nginx)配置代理服务器,在根目录下创建vue.config.js并在里面配置代理(vue2版本)

module.exports = {
   
   
	devServer: {
   
   
		disableHostCheck: true,
		proxy: {
   
   
			"/h5api": {
   
   
				target: "https://tiyu.baidu.com",
				changeOrigin: true,
				secure: false,
				pathRewrite: {
   
   
					"^/h5api": "/"
				}
			}
		}
	}
}

配置完后,使用uni.request发起网络请求无需https://tiyu.baidu.com
假设完整请求路径如下: https://tiyu.baidu.com/posts
此时发请求如下即可:

uni.request({
   
   
	url:"/h5api/posts"  //这里的/h5api相当于设置的target目标地址
}).then(res=>{
   
   
	console.log(res);
})

由于配置了vue.config.js,在微信小程序运行并不适用(微信小程序不存在跨域)。所以需要根据平台判断所属环境,来改变url的路径即可

### 解决 UniApp 项目中问题的最佳实践 #### 配置合法名 对于微信小程序而言,需在微信公众平台配置合法的业务名。这一步骤确保了从小程序发出的所有网络请求都指向经过验证的安全地址[^2]。 #### 开发者工具设置 利用微信开发者工具提供的选项来忽略合法名校验可以在一定程度上简化开发流程中的测试工作;不过需要注意的是此模式仅适用于调试阶段而非生产环境部署前准备的一部分。 #### 后端支持 CORS 让服务器响应头包含 `Access-Control-Allow-Origin` 字段允许特定源或通配符 (*) 来实现资源分享控制列表 (CORS),以此方式使得不同源之间的HTTP请求能够被浏览器接受并执行成功[^4]。 #### 使用代理服务 针对 H5 和 小程序开发者工具场景下发生的难题,可以通过修改 uni-app 工程内的 `pages.json` 文件定义一个简单的反向代理规则,将 `/api` 路径下的所有请求重定向至实际的目标 API 地址,并开启原点变更(`changeOrigin`) 功能以模拟同源环境,减少因带来的不便[^3]: ```json { "globalStyle": {}, "proxy": { "/api": { "target": "https://example.com", "changeOrigin": true, "pathRewrite": {"^/api":""} } }, "pages":[] } ``` #### 利用云开发能力 如果条件允许的话,考虑采用腾讯云或其他第三方服务商所提供的云端解决方案也是不错的选择之一。这类方案通常自带完善的权限管理体系及数据隔离措施,能有效规避传统意义上的障碍。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值