SpringBoot常用配置类——跨域配置

一、什么是跨域

跨域是指在网页中通过 JavaScript 请求不同域名、协议或端口的资源。由于浏览器出于安全考虑,通常会限制这种请求,称为同源策略(Same-Origin Policy)。

同源策略要求请求的资源与当前页面必须具有相同的协议域名端口

如我们页面当前地址为 http://www.testAAA.com/,请求地址为http://www.testBBB.com/,这种情况下就会因为域名不同造成跨域,同理 协议端口 不同也会造成跨域。

如果没有适当的跨域解决方案(如 CORS,Cross-Origin Resource Sharing),浏览器会阻止这个请求,并在控制台中抛出错误,提示这是一个跨域请求被阻止的情况。

二、跨域配置

解决跨域的方法有好几种,这里只说服务器后台解决跨域的方式。

1、局部跨域

在我们需要跨域的方法或类上添加 @CrossOrigin 注解以实现跨域。

@RestController
@CrossOrigin(origins = "*")
public class HelloController {

    @RequestMapping("/hello")
    public String hello() {
        return "hello world";
    }

}

2、全局跨域处理

新建配置类,通过实现 WebMvcConfigurer 接口的方式来实现全局的跨域配置。

@Configuration
public class WebConfig implements WebMvcConfigurer {

    /**
     * 配置跨域支持
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")		//允许的路径,即我们那些接口可以跨域
                .allowedOrigins("*")		//允许的源
                .allowCredentials(true) 	//是否允许发送凭证
                .allowedMethods("GET","POST","PUT","DELETE")  //指定允许的 HTTP 方法
                .maxAge(3600 * 24);		//预检请求有效期
    }

参考链接:
什么是跨域?跨域解决方法
SpringBoot---WebMvcConfigurer详解
详解WebMvcConfigurer接口

posted @ 2024-08-06 14:58  香酥豆腐皮  阅读(1544)  评论(0编辑  收藏  举报
正在加载今日诗词....