【发布时间】:2016-07-14 06:05:00
【问题描述】:
根据spring boot文档我添加了bean
@Bean
WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("http://localhost:3000");
}
};
}
从 localhost:3000 启用全局访问,这是我的前端应用程序。 我也使用弹簧安全,所以如果用户输入 localhost:8080/something 他被重定向到登录页面(如果没有登录)。问题是这个全局 cors 配置不起作用。
我有一个简单的控制器,它返回
List<String>
另一方面,我有角度服务,它负责向服务器发出获取请求。它看起来像这样:
this.http.get("http://localhost:8080/words", {
headers: new Headers({
'Authorization': 'Basic ' + btoa('login:password')
})
}).map((res:Response) => res.json())
.subscribe(
data => { this.words = data},
err => console.error('Error : ' + err),
() => console.log('done')
);
因此我可以在 google chrome 控制台中看到:
XMLHttpRequest cannot load http://localhost:8080/words. Response for preflight is invalid (redirect)
我该如何解决这个问题?
【问题讨论】:
-
用那个错误信息在谷歌搜索怎么样?
-
能否提供OPTIONS请求的响应内容(标头)?谢谢!
标签: java spring spring-boot cors angular