后端配置跨域
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;
}
以上是关于后端配置跨域的主要内容,如果未能解决你的问题,请参考以下文章