SpringBoot解决跨域问题,跨域注解@CrossOrigin学习

SpringBoot解决跨域问题

跨域的问题的体现在于 域名不同 和 端口不同(文章下面有详细讲解区别)。

解决方法的 一 个方式(后续会继续更新):

1.用@CrossOrigin注解,通过在controller方法上注入注解@CrossOrigin。

origins=配置白名单(方法或者类允许访问的域名,如:http://xxx.com),origin="*"代表所有域名都可访问。

allowCredentials=“允许跨域访问携带cookie,默认false,开启为true

maxAge是前响应的缓存持续时间的最大年龄,简单来说就是Cookie的有效期 单位为秒。若maxAge是负数,则代表为临时Cookie,不会被持久化,Cookie信息保存在浏览器内存中,浏览器关闭Cookie就消失。

 @RestController
//表示该控制类可以被任何域名都可以访问。
//也可放在方法上
 @CrossOrigin(origins = "*")
 public class PersonController {
	………………
}
//也可以这样指定
//这样确定了协议号,子域名,主域名,端口号。就可以实现,格式要正确
 @CrossOrigin(origins = "http://www.google.com:8080")

举个跨域情况栗子🌰:

首先,我们要先了解整个网址的结构:
https://www.google.com:8080
https(协议) www(子域名) google(主域名) 8080(端口)

非跨域:
http://www.ABC.com/index.html 调用
http://www.ABC.com/server.PHP

跨域,主域名不同:ABC 与 BCD
http://www.ABC.com/index.html 调用
http://www.BCD.com/server.php

跨域,子域名不同:abc 与 bcd
http://abc.ABC.com/index.html 调用
http://bcd.BCD.com/server.php

跨域,端口不同:8080 与 8081
http://www.ABC.com:8080/index.html调用
http://www.ABC.com:8081/server.php

跨域,协议不同:http 与 https
http://www.ABC.com/index.html 调用
https://www.ABC.com/server.php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值