【发布时间】:2018-11-14 11:10:14
【问题描述】:
Request URL: ******
Request Method: OPTIONS
Status Code: 403
Remote Address: ****
Referrer Policy: no-referrer-when-downgrade
对于显示为 OPTIONS 的通话后浏览器。
以下是服务器代码:
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
System.out.println("onboard cors");
registry.addMapping("/**").allowedMethods("GET", "PUT", "POST", "DELETE", "OPTIONS").allowedOrigins("*").allowedHeaders("*");
}
};
}
当我直接调用相应的服务时,上面的代码工作正常。
但通过 zuul api 网关调用服务得到“无效的 cors 请求”错误。
有什么建议吗?
【问题讨论】:
-
这是浏览器的预检检查,要实现它,你必须实现跨域,我只是在我的控制器中添加了
CrossOrigin注释并工作。如果你的项目中有spring security,那你添加的配置是不够的。 -
嗨 Mohamed,我尝试了上述方法,但没有成功。我尝试了 3 种方法 1. 全局 CORS 2. 控制器级别 3. 方法级别
-
上面的代码可以工作,但是我们使用的是zuul api网关,通过zuul api网关调用post调用是不工作的。通过直接调用相应的服务,它工作正常。
-
很抱歉听到这个消息,但我想您一定已经提到问题出在 zuul 级别,而不是微服务本身。祝你好运
标签: java spring spring-boot netflix-zuul