在使用Jquery提交POST的JSON数组时,使用Jersey发布REST问题,

时间:2012-11-07 16:07:00

标签: jquery json spring rest jersey

我有一个REST实现的REST,它提供了Tomcat(Server1)的API

@POST
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Users create(Users users) {
    return dao.create(users);
}

和request是从Apache(Server2)的jquery客户端发布的

$.ajax({
    type: 'POST',
    contentType: 'application/json',
    url: rootURL,
    dataType: "json",
    data: formToJSON(),
    success: function(data, textStatus, jqXHR){
        alert('user created successfully');

    },
    error: function(jqXHR, textStatus, errorThrown){
        alert('user error: ' + textStatus);
    }
});

这个jquery实际上是在向服务器提交请求,但是服务器/ API无法识别这个请求。所有其他请求如@Formparam / @ Header等与POST / GET一起工作

如果我使用REST客户端使用同样的东西它正在工作,任何人都可以帮助我 使用请求对象类型为POST排序此问题。

1 个答案:

答案 0 :(得分:0)

调试通信问题的最佳方法是检查发送到服务器的标头。要完成此任务,您可以使用Chrome开发者工具在浏览器中检查请求。打开Chrome,按F12,转到网络标签,按XHR过滤并强制发出此请求。复制所有标题并在此处发布。

然后,使用Jersey Client API进行测试。启用日志记录,向客户端添加过滤器:

client.addFilter(new LoggingFilter());

然后查看控制台并将输出与Chrome Dev Tools中的前一个输出进行比较。