【发布时间】:2019-10-25 12:30:37
【问题描述】:
我有 Springboot (v 2.0) 应用程序。我在 application.properties 中启用了 CORS,如下所示。
management.endpoints.web.cors.allowed-origins=http://xxxx.yyyyy.me
management.endpoints.web.cors.allowed-methods=GET,POST
management.endpoints.web.cors.allowed-headers=Authorization,Cache-Control,Content-Type,Accept,X-Requested-With,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Origin
management.endpoints.web.cors.exposed-headers=Access-Control-Expose-Headers,Authorization,Cache-Control,Content-Type,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Origin
我还必须从 web 配置中删除注释 @EnableWebMvc,因为我不想使用 Thymleaf 模板(所以我使用我自己的添加视图控制器,如下所示。)
@Override
public void addViewControllers(ViewControllerRegistry registry)
{
registry.addViewController("/").setViewName("forward:/index.html");
registry.addViewController("/myProfile").setViewName("forward:/index.html");
}
我还在主 java 类中添加了 CORS 配置 bean,如下所示。
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("http://xxxx.yyyyy.me")
.allowedHeaders("Authorization","Cache-Control","Content-Type","Accept","X-Requested-With","Access-Control-Allow-Origin","Access-Control-Allow-Headers","Origin")
.exposedHeaders("Access-Control-Expose-Headers","Authorization","Cache-Control","Content-Type","Access-Control-Allow-Origin","Access-Control-Allow-Headers","Origin");
}
};
}
在网络安全方面,我添加了以下内容:
@Override
protected void configure(HttpSecurity http) throws Exception
{
http.cors();
}
但仍然没有运气。当我收到来自http://xxxx.yyyyy.me 的请求时,出现如下所示的 CORS 错误。
Access to XMLHttpRequest at 'https://abcde.com/api/traveller/findTravellers?fromDate=&toDate=&gender=&orderBy=&minAge=&maxAge=&keyword=&languages=&placeObj=&needAccommodation=false&haveAccommodation=false&needCar=false&haveCar=false&lookingFriends=false&withPhotoOnly=false&page=0&totalVisible=7&size=20&totalCount=0' from origin 'http://xxxx.yyyyy.me' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
知道如何解决这个问题吗? 非常感谢。
【问题讨论】:
-
你的CORS配置代码被调用了吗?
WebMvcConfigurer和@EnableWebMvc紧密耦合。 -
当我收到来自xxxx.yyyyy.me 的请求时,您是否在任何restapi 工具上使用任何网络浏览器?
标签: spring spring-boot cors