JAX-RS:CORS标题'Access-Control-Allow-Origin'在设置

时间:2017-12-10 14:16:25

标签: java angular rest cors jax-rs

在阅读了有关此主题的多篇帖子后,在部分修复之后,我再次陷入困境。我从我的angular4网站打电话给jersey-rs rest api,发布图片。虽然获取数据很好,但是发布数据并不想工作......因为:

  

阻止跨源请求:同源策略禁止在http://localhost:8080/server/api/image/读取远程资源。 (原因:缺少CORS标题'Access-Control-Allow-Origin'。

我真的不知道为什么会发生这个帖子而不是为了获得。我试图将其添加到标题中:

.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE")

但这不会改变任何事情。

在这里,您可以获得有关如何构建响应的完整代码:

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response addImage(Image image) {
    try {
        boolean created = service.addImage(image);
        if (created) {
            return buildResponse(Response.Status.CREATED,null);
        } else {
            return buildResponse(Response.Status.BAD_REQUEST,null);
        }
    } catch (Exception e) {
        return buildResponse(Response.Status.BAD_REQUEST,null);
    }
}

构建响应方法:

    public Response buildResponse(Response.Status status, Object object) {

    if (object != null) {
        return Response.status(status).entity(object)
                .header("Access-Control-Allow-Origin", "*")
                .build();
    } else {
        return Response.status(status)
                .header("Access-Control-Allow-Origin", "*")
                .build();
    }
}

希望有人知道我错过了什么。谢谢你!。

0 个答案:

没有答案