跨域在Spring Boot中如何处理

Posted 繁华乱世

tags:

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

      跨域的产生就是因为浏览器的同源策略。它是浏览器的核心安全功能,所谓的同源,就是指域名,协议,还有端口要相同。传统的方案就是JSONP(前端处理方案),但是JSONP有很大的局限性,就是只支持GET请求,所以不能满足我们的需求,而CORS(Cross-origin-resource sharing)跨域资源共享,就可以解决这个问题。他是一个浏览器规范,一个w3c标准,提供web服务从不同网域传来的沙盒脚本的方法,避开了浏览器的同源策略。

CORS是后端的一种处理的方案,在Spring中可以配置解决跨域,在Spring Boot中它的配置变得很简单,只需要在你controller方法上加一个注解@CrossOrigin(origins="你的请求地址")就好了。

如果方法百十来个,那这种的就不适用,因此可以做一个全局配置,统一处理

@Configuration
//ctrl+o找一下这个方法
public class WebMVcConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("**").allowedOrigins("http://localhost:8081")
                             .allowedHeaders("*")
                             .allowedMethods("*")
                             .maxAge(30*1000);
    }
}

后端代码处理的话就是这样,但是还有其他方法,例如nginx,例如node.js,都可以处理,但是这两个第三方工具的用处很多,如果仅仅局限在处理跨域,那就有点大材小用。

以上是关于跨域在Spring Boot中如何处理的主要内容,如果未能解决你的问题,请参考以下文章

java中如何处理String args[]中的逗号

spring boot中各种数据不匹配如何处理jackson反序列化错误

在 C 中如何处理小括号中传递的参数? [复制]

SpringBoot.09.SpringBoot中如何处理Filter抛出的异常

Spring Boot 如何处理可抛出对象

Spring Boot 如何处理 Hibernate 会话?