SpringBoot跨域

Posted 老高专栏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot跨域相关的知识,希望对你有一定的参考价值。

概述

什么是跨域?由于浏览器的安全性限制,不允许前端页面访问协议不同、域名不同、端口号不同的http接口,例如我本地创建一个html,里面写一个ajax请求访问我服务器springboot应用提供的接口:192.168.56.123:8080/getUserInfo
则会出报 No 'Access-Control-Allow-Origin' header is present on the requested resource. 错误。
此类问题我们一般是在接口提供方,即服务端解决。

配置

在springboot中可以采用多种方式解决跨域问题,例如:可以在类或方法上添加@CrossOrigin 注解。还有一种就是全局配置,全局配置需要添加自定义类实现 WebMvcConfigurer 接口,然后实现接口中的 addCorsMappings 方法。

@Configuration
public class MyWebMvcConfig implements WebMvcConfigurer 
 
    @Override
    public void addCorsMappings(CorsRegistry registry) 
        registry.addMapping("/**") //表示对哪种格式的请求路径进行跨域处理
                .allowedHeaders("*") //表示允许的请求头,默认允许所有的请求头信息
                .allowedMethods("*") //表示允许的请求方法,默认是 GET、POST 和 HEAD。这里配置为 * 表示支持所有的请求方法
                .maxAge(1800)
                .allowedOrigins("*"); //表示支持的域
    

以上是关于SpringBoot跨域的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot:配置解决跨域请求

SpringBoot解决全局和局部跨域问题的两种方式

springboot跨域不拦截json拦截文件

springboot如何解决跨域问题?

Springboot 配置跨域

springboot 解决跨域问题[不生效,就问你气不气?]