Java JQuery ajax获取请求,响应状态为200 OK时未触发成功

Java JQuery ajax获取请求,响应状态为200 OK时未触发成功,java,jquery,ajax,json,rest,Java,Jquery,Ajax,Json,Rest,发送REST调用时,我收到一个奇怪的JSON响应数据响应。我可以在firebug中看到响应状态是正常的,但身体是空的,尽管尝试使用海报效果很好。这是我的JQuery调用: var urlPath = "http://localhost:8080/coreserver/rest"; function totalAccountCount() { $.ajax({ type: "GET", url: urlPath + "/summary/totalAccou

发送REST调用时,我收到一个奇怪的JSON响应数据响应。我可以在firebug中看到响应状态是正常的,但身体是空的,尽管尝试使用海报效果很好。这是我的JQuery调用:

var urlPath = "http://localhost:8080/coreserver/rest";

function totalAccountCount()
{
    $.ajax({
        type: "GET",
        url: urlPath + "/summary/totalAccountCount",
        dataType: "json",

        success: function (resp) {
           var rowText = "<tr><td>Total Accounts</td><td>" + resp.wrapper.item + "</td></tr>";
           $(rowText).appendTo(tbody);
           //loadCustomers(resp); 
           alert("STATUS: " + xhr.status + " " + xhr.statusText);
        },
        error: function(xhr, textStatus, errorThrown){  
             alert("Error: fails"); 
             //$("#message").html(resp.e  + " - STATUS: " + xhr.status + " " + xhr.statusText);

           } 
    });
}
var urlPath=”http://localhost:8080/coreserver/rest";
函数totalAccountCount()
{
$.ajax({
键入:“获取”,
url:urlPath+“/summary/totalAccountCount”,
数据类型:“json”,
成功:功能(resp){
var rowText=“总账户”+resp.wrapper.item+”;
$(rowText).appendTo(tbody);
//客户(resp);
警报(“状态:+xhr.STATUS+”+xhr.statusText);
},
错误:函数(xhr、textStatus、errorshown){
警报(“错误:失败”);
//$(“#message”).html(分别为e+”-状态:“+xhr.STATUS+”+xhr.statusText);
} 
});
}
调试时,它不会转到成功分支,而是转到错误分支。这是我的资源:

@GET
@Path("/totalAccountCount")
@Produces({MediaType.APPLICATION_JSON})
public JaxbWrapper<Integer> getTotalAccountCount() {
    return new JaxbWrapper<Integer>((int)this.accountStore.count());
}
@GET
@路径(“/totalAccountCount”)
@产生({MediaType.APPLICATION_JSON})
公共JaxbWrapper getTotalAccountCount(){
返回新的JaxbWrapper((int)this.accountStore.count());
}
我已经知道,用
JaxbWrapper
阅读我的响应可能是错误的,但根本不会成功,所以现在我想确保这是可行的


我希望能得到一些帮助。提前感谢。

异步:false解决了这个问题。它总是跳转到错误函数,然后成功

更新1

让它工作的真正原因是我在服务器端的web.xml中添加了以下内容:

<init-param>
            <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
            <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
</init-param>

com.sun.jersey.spi.container.ContainerRequestFilters
com.sun.jersey.api.container.filter.LoggingFilter
有人能理解这一点吗

更新2

它只是缓存的。问题解决了


谢谢,

从jQuery 1.9开始,当使用
数据类型:'json'
时,如果服务器响应为空,则不会将其视为成功。我当前使用的是jQuery-1.8.3:状态为ok 200,但实际上不会成功这是一个跨域请求吗?如果是这样,可以得到一个200,但如果没有启用CORS或jsonp设置将不会触发成功否它的本地主机,都在同一个域上。此外,当我尝试从浏览器调用poster返回值时,它也可以使用poster,但作为XML而不是JSON,我不知道这是否是问题所在?尝试比较原始请求,即何时从jquery执行操作以及何时从浏览器执行操作。还可以尝试从jquery调用中设置内容类型。这不是一个修复方法,这样会造成更多问题。页面冻结、浏览器崩溃等问题。你是对的,即使没有,它也能工作。这让我很困惑,因为它只是匹配了我在同一时间在服务器端所做的另一个更改。我会更新我的答案。