我在从我的 Web 应用程序向我的 Web 服务传输数据时遇到了一些问题。
所以我有一个带有 Spring、Hibernate 和 Jackson 的 Java JAX-RS Web 服务。到目前为止,我已经使用 JSON-P 从 Web 服务获取数据,但现在我需要进行 POST 调用,所以我正在尝试切换到 CORS。
使用 JSON-P 的旧代码:
@GET
@Path("/getUsers")
@Produces(MediaType.APPLICATION_JSON)
public ResponseEntity getUsers(@QueryParam("callback") String callback) {
Set<User> list = null;
list = userBo.getUsers();
if (list != null) {
return callback + "(" + list.toString() + ");";
} else {
return null;
}
}
我一直在尝试通过以下方式更改响应的标题:
@GET
@Path("/getUsers")
@Produces(MediaType.APPLICATION_JSON)
public ResponseEntity getUsers(@QueryParam("callback") String callback) {
Set<User> list = null;
list = userBo.getUsers();
HttpHeaders headers = new HttpHeaders();
headers.add("Access-Control-Allow-Origin", "*");
headers.add("Access-Control-Allow-Methods", "GET, OPTIONS, POST");
headers.add("Access-Control-Allow-Headers", "Content-Type");
return new ResponseEntity(list.toString(), headers, HttpStatus.OK);
}
但是 Jackson 将整个 ResponseEntity 转换为 JSON 字符串。任何人都知道如何在不让杰克逊全部转换的情况下更改标题?
谢谢!