uniapp的跨域问题

一、跨域问题

1、什么是跨域问题

浏览器不能执行其他网站的脚本,从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域。

2、跨域常见问题

  • 网络一般报403
    在这里插入图片描述
  • 控制端
    在这里插入图片描述

3、跨域的解决办法

  • 法一:
    点击manifest.json,找到源码分析,添加如下代码
"h5": {
	        "devServer": {
	            "proxy": {
	            	//”/api“意为以遇见/api便执行以下处理
	                "/api": {
	                	//”target“意为在/api前拼接target
	                    "target": "http://127.0.0.1:8080",
	                    //设置允许跨域——此处我经过测试发现可有可无
						"changeOrigin":true,
						//将/api替换成/
	                    "pathRewrite": {
	                        "^/api": "/"
	                    }
	                }
	            }
	        }
	    }
  • 法二:
    在主目录下创建config.js文件,添加以下代码
module.exports = {
  devServer: {
    proxy: {
      //”/api“意为以遇见/api便执行以下处理
	  "/api": {
	    	//”target“意为在/api前拼接target
	    	"target": "http://127.0.0.1:8080",
	        //设置允许跨域——此处我经过测试发现可有可无
			"changeOrigin":true,
			//将/api替换成/
	        "pathRewrite": {
	             "^/api": "/"
	         }
	   }
    },
  }
}

3、页面的请求调用

  • 页面请求调用后端接口,实现代码
//设计一个点击事件
//如:login()
//提交表单
			async onlogin(){
				if(this.user.password==""||this.user.username==""){
					alert("密码或账号为空");
					return;
				}
				if(this.user.password!=""&&this.user.username!=""){
					//发送数据到后台
					//const res=await api.login({password:this.password,username:this.username});
					console.info(this.user);
					uni.request({
					    url: 'http://localhost:8080/api/user/login', //仅为示例,并非真实接口地址。
					    method:"POST",
						data:this.user,
					    success: (res) => {
					        console.log(res.data);
					        //this.text = 'request success';
							if(res.data.code==200){
								alert("登入成功");
							}else{
								alert("登录失败")
							}
							
					    }
					});

				}
			},

注意:uri: ‘http://localhost:8080/api/user/login’,(这是错误的写法)
url: ‘/api/user/login’,(正确的写法,此处只需要写/api/+后端接口)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值