我有一个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排序此问题。
答案 0 :(得分:0)
调试通信问题的最佳方法是检查发送到服务器的标头。要完成此任务,您可以使用Chrome开发者工具在浏览器中检查请求。打开Chrome,按F12,转到网络标签,按XHR过滤并强制发出此请求。复制所有标题并在此处发布。
然后,使用Jersey Client API进行测试。启用日志记录,向客户端添加过滤器:
client.addFilter(new LoggingFilter());
然后查看控制台并将输出与Chrome Dev Tools中的前一个输出进行比较。