uni-app解决接口跨域问题

1. uniapp在前后台分离开发中,调试请求接口时,出现跨域问题

在这里插入图片描述

跨域原因:由于浏览器同源策略,即:端口号、域名、协议、IP地址必须一致,否则请求将被浏览器拦截。

2、解决方法

服务器之间的请求无需遵循同源策略,则使用代理作为中间服务器,代理服务器向后台服务器请求数据,然后返回给浏览器。uniapp给我们提供了一个node.js的代理服务器,我们只需要按照配置即可。
![在这里插入图片描述](https://img-blog.csdnimg.cn/60b7e233f34642418bbf390dd0251e27.png#pic_center
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

配置代码:

"h5" : {
		"devServer" : {
		"port" : 8080, //端口号
		"disableHostCheck" : true,
		"proxy" : {
			  "/api" : {
			  "target" : "https://www.jisuapo.com/", //自己项目接口域名
			  "changeOrigin" : true,  //是否跨域
			  "secure" : true,  // 设置支持https协议的代理
			  "pathRewrite": {"^/api":"/api"}   //api路径重定向,根据具体情况调整,也可不写
				}
			}
		
		},
		"optimization" : {
		   "treeShaking" : {
			   "enable" : false
			}
		}
	}

*最后!最后!最重要的!配置完成,一定要重新编译项目!*

最后效果

在这里插入图片描述

测试中如果遇到请求还是不成功

请仔细检查:
一:查看manifest.json 源码视图 检查 devServer配置代理属性是否写错了,建议直接赋值粘贴文中代码(记得修改成自己的路径,"/api"为你所有的请求中都共有的部分)
二:检查请求封装的base url 是否正确
三:最后重新运行项目

共同攻克前端难题,解决方案供大家参考

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值