后端配置跨域

Posted

tags:

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

参考技术A 原文连接: 原文地址

跨域的详细介绍可以参考: 浏览器和服务器实现跨域(CORS)判定的原理 ,这里不多赘述。

1、主要就是客户端向发送了服务端请求,服务器已经能返回数据,但是浏览器不接收

2、在接口里面加上:( 因为request是处理请求,response是返回结果 )

response.setHeader("Access-Control-Allow-Origin", "*");

response.setHeader("Cache-Control","no-cache"); 

3、如果是使用Spring Boot创建的项目,直接添加 一句注解 到controller和方法就可以了:

@CrossOrigin

其中@CrossOrigin中的2个参数:

origins  : 允许可访问的域列表

maxAge :准备响应前的缓存持续的最大时间(以秒为单位)。

在这个例子中,对于retrieve()和remove()处理方法都启用了跨域支持,还可以看到如何使用@CrossOrigin属性定制CORS配置。如果同时使用controller和方法级别的CORS配置,Spring将合并两个注释属性以创建合并的CORS配置。

4、如果您正在使用Spring Security,请确保在Spring安全级别启用CORS,并允许它利用Spring MVC级别定义的配置。

二、全局CORS配置

  除了细粒度、基于注释的配置之外,您还可能需要定义一些全局CORS配置。这类似于使用筛选器,但可以声明为Spring MVC并结合细粒度@CrossOrigin配置。默认情况下,所有origins and GET, HEAD and POST methods是允许的。

JavaConfig

使整个应用程序的CORS简化为:

更多使用请看原文连接和官方文档

axios请求携带cookie实现跨域(后端springsecurity)

axios请求携带cookie实现跨域(后端springsecurity)



    /*CORS跨域配置*/
    @Bean
    CorsConfigurationSource corsConfigurationSource(){
        CorsConfiguration configuration=new CorsConfiguration();
        configuration.addAllowedOrigin("http://localhost:3000"); //设置访问源地址
        configuration.addAllowedMethod("*"); //设置访问源请求方法
        configuration.addAllowedHeader("*"); //设置访问源请求头
        configuration.setAllowCredentials(true); //这个证书必须为true,允许携带cookie
        configuration.applyPermitDefaultValues();
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**",configuration);
        return source;
    }


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

阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-10 设置跨域配置实现前后端联调

如何解决跨域问题

Spring后端跨域请求设置

java后端解决跨域问题

java后端解决跨域问题

axios请求携带cookie实现跨域(后端springsecurity)