Reactjs 从Chrome版本处理HTTP网站的CORS Cookie>;85
我使用React(端口3000)和Spring(端口8080)创建了一个小的登录应用程序,它们运行在同一台机器(localhost)上,但端口不同 由于CORS策略,浏览器拒绝了从前端到后端的http请求,因此我在SpringBoot后端应用程序中启用了CORS配置 Cors配置Reactjs 从Chrome版本处理HTTP网站的CORS Cookie>;85,reactjs,spring,spring-boot,google-chrome,cookies,Reactjs,Spring,Spring Boot,Google Chrome,Cookies,我使用React(端口3000)和Spring(端口8080)创建了一个小的登录应用程序,它们运行在同一台机器(localhost)上,但端口不同 由于CORS策略,浏览器拒绝了从前端到后端的http请求,因此我在SpringBoot后端应用程序中启用了CORS配置 Cors配置 @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addCorsM
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:3000")
.allowedMethods("PUT", "DELETE", "POST", "GET", "PATCH", "OPTIONS")
.allowedHeaders("Accept", "Content-Type",
"Origin", "Access-Control-Allow-Credentials", "Set-Cookie", "Access-Control-Allow-Headers",
"Access-Control-Allow-Methods", "Access-Control-Allow-Origin", "Cookie")
.exposedHeaders("Accept", "Content-Type",
"Origin", "Access-Control-Allow-Credentials", "Set-Cookie", "Access-Control-Allow-Headers",
"Access-Control-Allow-Methods", "Access-Control-Allow-Origin")
.allowCredentials(true);
}
}
现在,我能够为“访问控制允许方法”中提到的所有方法向后端进行http调用
此外,一旦用户成功登录,我将生成一个cookie,并在响应中作为“Set cookie”头的一部分发送,这样下次我将作为cookie头的一部分接收cookie。生成的cookie具有以下配置:
a) sslSecure=false(因为我的站点将是http站点)
b) HttpOnly=true(出于安全原因/阻止XSS攻击)
c) sameSite=无(因为交叉原点)
d) 最大年龄=2小时(浏览器中的cookie生存期)
从Chrome第85版来看,在CORS请求的情况下,只有当sslSecure=true且sameSite=None时,才会将cookie发送到后端
如何克服这个问题?因为我的站点不包含任何敏感信息,所以我希望它是http(将始终具有sslSecure=false),而不是https