SpringBoot是如何解决跨域问题的?

目录

一、什么是跨域

二、解决跨域问题的方案

三、Spring boot 使用CORS解决跨域问题

1.使用@CrossOrigin (可以加在类上边可以加在方法上边,加上后一定要重启)

2.使用WebMvcConfigurer接口的的addCorsMappings方法配置Corsinterceptor


一、什么是跨域

如下图,我们用过vs编写的前端代码在访问Springboot的端口的时候发现访问不到......

浏览器处于安全考虑,使用XMLHTTPRequest对象发起HTTP请求实现遵守同源策略(即协议、域名、端口号要完全一致)。否则就是跨域的http请求,默认情况下是被进制的。

二、解决跨域问题的方案

CORS解决跨域

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

三、Spring boot 使用CORS解决跨域问题

1.使用@CrossOrigin (可以加在类上边可以加在方法上边,加上后一定要重启)

@RequestMapping("/findAll")
@ResponseBody
@CrossOrigin
public ResponseResult findAll(){
     List<User> users = userService.findAll();
     return new ResponseResult(200,users);
}

之后再次请求我们返现问题解决了。

2.使用WebMvcConfigurer接口的的addCorsMappings方法配置Corsinterceptor

@CrossOrigin这种方式无论是加在类上还是加在方法上,都免不了多次进行配置。Spring boot 官方给我们提供了一种全局变量的方式使用WebMvcConfigurer接口的的addCorsMappings方法配置Corsinterceptor。

@Configuration
public class CrossConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // 设置允许跨域的路径
        registry.addMapping("/**")
                //设置允许请求跨域的域名
                .allowedOriginPatterns("*") 
                //是否允许cookie
                .allowCredentials(true)
                //设置允许的请求方式
                .allowedMethods("GET","POST","DELETE","PUT")
                //设置允许的header属性
                .allowedHeaders("*")
                //跨域允许时间
                .maxAge(3000);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ADRU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值