编程随笔-SpringBoot | 26.解决跨域问题

0.前言

参考文章:

SpringBoot解决跨域问题

什么是跨域请求

1.同源策略

同源策略要求:必须保证源相同,方可正常通信,即协议、域名、端口号完全一致

浏览器出于安全考虑,在使用XMLHttpRequest对象发起HTTP请求时,必须遵守同源策略,否则该请求就会被认定为跨域请求

跨域请求能正常发出并被服务器接收和响应,但响应结果被客户端(浏览器)拦截了

image-20210927201113553

2.跨域请求示例

协议不同

  • http://www.example.com

  • https://www.example.com

域名不同(域名访问和ip访问同样会造成跨域问题)

  • http://www.example.com (117.34.1.1)
  • http://117.34.1.1

子域名不同

  • http://www.example.com
  • http://e.example.com

端口号不同

  • http://www.example.com(:80)

  • http://www.example.com:8080

3.SpringBoot解决跨域问题

有三种解决方案,在springboot解决跨域问题(Cors)有比较详细的说明

  • 创建Filter(过滤器)解决
  • 基于WebMvcConfigurerAdapter配置加入Cors的跨域
  • 在controller或其方法上加上@CrossOrigin

这里简单介绍一下第三种方法:

既可以在方法上加注解(仅对一个方法生效)

image-20210927201649310

也可以在Controller的类代码上加注解(对该类的所有方法生效)

image-20210927201622609

该注解也可以设置"origins"属性和"maxAge"属性

  • origins:允许跨域请求的网址列表
  • maxAge:响应前的缓存持续的最大时间
//允许www.a.com和www.b.com发出的跨域请求
@CorssOrigin(origins = {"www.a.com", "www.b.com"}, maxAge = 3600)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值