0

我使用 MSF4J 创建了一个微服务,并使用邮递员测试了资源,一切正常,但是当我将它与 Angular 5 客户端应用程序一起使用时;浏览器发送一个额外的 http OPTIONS 请求来检查 CORS 我得到一个“405 Method Not Allowed”响应。有人可以帮忙吗?

4

3 回答 3

0

MSF4J 不支持 CORS。OPTION如果要处理 CORS 请求,可以添加到资源方法

于 2018-11-29T01:30:50.567 回答
0

我遇到了同样的问题,我使用了一个名为CORS Everywhere的 firefox 插件,仅用于开发目的,但是当它投入生产时,我必须通过一个 ESB 传递请求,该 ESB 在insequence

<property name="Access-Control-Allow-Origin" scope="transport" type="STRING" value="*"/>

这解决了问题。我仍然不知道是否可以在微服务本身上启用 CORS

于 2019-04-26T10:26:32.650 回答
0

您必须实现一个 OPTIONS 方法。这是我在旧项目中使用的示例:

@GET
@Path("device")
@Produces({ "application/json" })
@RequestInterceptor(DeviceBasicAuthInterceptor.class)
public Response deviceGet() throws NotFoundException {
    //...
    return result;
}

@OPTIONS
@Path("device")
public Response deviceOptions() throws NotFoundException {
    String allowedOrigin = null;
    try {
        allowedOrigin = PropertyFileHandler.getInstance().getPropertyValueFromKey("api.cors.allowed");
    } catch (IllegalArgumentException | PropertyException | IOException e) {
        LOGGER.error("Could not get allowed origin.", e);
    }
    Response response = Response.ok().header("Allow", "GET").header("Access-Control-Allow-Origin", allowedOrigin)
            .header("Access-Control-Allow-Headers", "authorization, content-type").build();
    return response;
}
于 2019-08-01T14:53:08.560 回答