在阅读了有关此主题的多篇帖子后,在部分修复之后,我再次陷入困境。我从我的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();
}
}
希望有人知道我错过了什么。谢谢你!。