uniapp代理跨域

1.manifest.json文件

H5配置中增加代理服务器

"h5": {
		"template": "template.h5.html",
		"router": {
			"mode": "history",
			"base": "./"
		},
		"devServer": {
			"port": 8080, //一般本地的端口为8080或8081
			"disableHostCheck": true, //默认配置,不用纠结
			"proxy": {
				"/api": {   //这里是指所有请求url中包含api的都会走代理服务器
					"target": "https://baidu.com", //你的目标服务器域名,也就是真正请求的后端接口的根域名
					"changeOrigin": true, //host为变成target的值
					"secure": false,
					"ws": false,
					"pathRewrite": {
						"^/api": "" //路径重写,将api替换成空
					}
				}
			}
		}
	},
2.在api文件中
// #ifdef MP-WEIXIN
export const BASE_URL = 'https://baidu.com' //后台根域名
// #endif
// #ifdef H5
export const BASE_URL = '/api' //后台根域名  这样写,会给所有的接口都添加上/api,然后走代理服务器
// #endif
UniApp请求跨域解决可以使用以下几种方法: 1. 在服务器端进行配置:在服务器端设置响应头,允许访问该服务器的域名或IP地址。可以通过在服务器的代码中设置Access-Control-Allow-Origin响应头,将需要访问的域名或IP地址添加到该头部信息中。 2. 使用代理服务器:可以在本地开发环境中配置一个代理服务器,将请求发送到代理服务器,由代理服务器将请求转发到目标服务器。这样可以绕过跨域限制。UniApp可以在vue.config.js文件中配置devServer.proxy选项来设置代理服务器,将请求转发到目标服务器。 3. 使用JSONP请求:JSONP是一种跨域请求的方式,通过动态创建<script>标签,并将请求参数拼接到URL中发送到目标服务器,目标服务器将返回一个函数调用,返回的数据作为函数参数传入,并在页面中执行该函数来获取到数据。在UniApp中可以使用uni.request方法来发送JSONP请求。 4. 启用cors跨域:如果目标服务器支持CORS(跨源资源共享)机制,可以在uni.request的header中添加Origin字段,同时将header['content-type']设置为'application/json',然后服务器返回响应头中包含Access-Control-Allow-Origin字段,允许来源的域名或IP地址访问。 需要注意的是,在进行跨域请求时,需要确保目标服务器已经设置了合理的安全策略,以防止潜在的安全风险。另外,当使用代理服务器进行跨域请求时,要注意代理服务器的配置和使用方法,确保请求能够正确地转发到目标服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值