解决方案:angularjs中添加
.config(function($httpProvider) {
$httpProvider.defaults.withCredentials = true;
})
如果该属性被设置为
true
,那么
XHR
请求对象中会设置
withCredentials
标记。
默认情况下, CORS 请求不会发送 cookie ,而 withCredentials 标记会在请求中加入
Access-Control-Allow-Credentials 头,这样请求就会将目标域的 cookie 包含在请求中。
默认情况下, CORS 请求不会发送 cookie ,而 withCredentials 标记会在请求中加入
Access-Control-Allow-Credentials 头,这样请求就会将目标域的 cookie 包含在请求中。
springboot中
它需要前后端一起开启,开启之后就能够读写浏览器的Cookies,但是这个Cookies是完全由你要请求站点控制的,我们无法通过js去获取或改变Cookies中的值。
@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowCredentials(true);
corsConfiguration.addAllowedOrigin("http://localhost:63342");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig());
return new CorsFilter(source);
}
}