2

我正在使用 Spring 5 路由器功能构建一个 Web 应用程序休息控制器来映射请求。

@RestController
public class AdminRest {

public RouterFunction<ServerResponse> route() {
    return RouterFunctions
            .route(RequestPredicates.GET("/admin/organizations"), this::getOrganizations);
}
}

让 Angular 4 项目充当剩余控制器的消费者。

public getOrganizations(): Observable<OrganizationsList> {
return this.http.get(this.getOrganizationsUrl)
  .map((res: Response) => res.json())
  .catch((error: any) => Observable.throw(error.json().error || 'Server error'));
 }

返回此错误

XMLHttpRequest 无法加载http://ip:port/admin/organizations。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:3000 ”。响应的 HTTP 状态代码为 500。}

如何在 Spring 5 路由器功能中允许 CORS?

4

2 回答 2

0

你能注释为

@CrossOrigin(origins = "http://domain2.com", maxAge = 3600)

请参阅Spring CORS 文档以获取更多信息

于 2018-01-22T03:03:21.167 回答
0

添加配置文件对我有用

@Configuration
@EnableWebFlux
public class CorsConfig implements WebFluxConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry corsRegistry) {
        corsRegistry.addMapping("/admin/organizations")
                .allowedOrigins("*")
                .allowedMethods("GET")
                .maxAge(3600);
    }
}
于 2021-02-23T11:07:40.290 回答