CorMappings 跨域问题 SpringBoot解决跨域CorsRegistry

1

2

3

4

5

6

7

8

9

10

11

12

13

实现webMvcCofigurer接口重写addCorsMappings(CorsRegistry registry){}方法

@Configuration

public class WebConfig implements WebMvcConfigurer {

    @Override

    public void addCorsMappings(CorsRegistry registry) {

        registry.addMapping("/admin/**") //  允许访问的地址     

                .allowedOrigins("*")  //请求来源     

                .allowedMethods("GET","POST","DELETE")//请求方式

                .allowedHeaders("*")    //请求头

                .exposedHeaders("Access-Control-Allow-Origin")

                .allowCredentials(true);

    }

或者

     

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .exposedHeaders("Access-Control-Allow-Origin")
                .allowCredentials(true);
    }

也可以
    
@Override
  public void addCorsMappings(CorsRegistry registry) {

    registry.addMapping("/**")  //允许跨域访问数据;
        .allowedOrigins("http://localhost:4200")
        .allowedMethods("POST");
  }

服务器在响应字段中来表明是否允许这个跨域请求,浏览器收到后检查如果不符合要求,就拒绝后面的请求

Access-Control-Allow-Origin:允许哪些域来访问(*表示允许所有域的请求)
Access-Control-Allow-Methods:允许哪些请求方式
Access-Control-Allow-Headers:允许哪些请求头字段
Access-Control-Allow-Credentials:是否允许携带Cookie
 

CORS全称叫跨域资源共享(Cross-origin resource sharing),原理是在正式的跨域请求之前,先发送了一个OPTIONS请求去询问服务器是否允许接下来的跨域请求

OPTIONS请求里新增了几个字段:

Origin:发起请求原来的域

Access-Control-Request-Method:将要发起的跨域请求方式(GET/PUT/POST/DELETE/······) Access-Control-Request-Headers:将要发起的跨域请求中包含的请求头字段

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值