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接口

本文作者:香酥豆腐皮

本文链接:https://www.cnblogs.com/Snowclod/p/18345070

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   香酥豆腐皮  阅读(1583)  评论(0编辑  收藏  举报
多情只有春庭月,犹为离人照落花。
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 青石巷 REOL
青石巷 - REOL
00:00 / 00:00
An audio error has occurred.