如何找出JQuery ajax请求失败的原因

如何找出JQuery ajax请求失败的原因,jquery,ajax,Jquery,Ajax,我有一个ajax请求,应该是好的,但是失败了。没有关于原因的信息。我的代码是: $.getJSON( "http://localhost:62178/document?filename=c:/test/dave.docx", function( data ) { console.log("read = " + data); }).done(function(e) { console.log( "second success" ); }) .fail(function(e)

我有一个ajax请求,应该是好的,但是失败了。没有关于原因的信息。我的代码是:

$.getJSON( "http://localhost:62178/document?filename=c:/test/dave.docx", function( data ) {
    console.log("read = " + data);
}).done(function(e) {
    console.log( "second success" );
})
    .fail(function(e) {
        console.log( "error" );
    })
    .always(function(e) {
        console.log( "complete" );
    });
根据fiddler的说法,REST查询返回一个200,返回的主体是我期望的JSON。它调用fail(e),对象e是一组函数,只有3个属性: readyState:0 回应文字:“ 状态文本:“错误”

生成的JSON是由ASP.NET Web API 2创建的,因此我非常确信它是有效的。它看起来确实有效。其形式如下:

{
success: true,
document: {
...
  }
}
如何找出JQuery不满意的地方


更新:我解决了问题(跨域请求)。但我最初的问题仍然是,如何找出ajax请求从fail()函数中传递的变量失败的原因?

您可以在getJSON调用之后使用.fail函数(就像您已经使用过的那样),并输出如下参数:

.fail(function(jqXHR, textStatus){ //ERROR
    console.log('FAILURE: ' + textStatus);
    console.log(jqXHR);
});

现在查看控制台,您可以看到textStatus,您将看到jqXHR对象。此对象包含可能有用的其他信息。让我知道这是否有效,或者是否有不清楚的地方!谢谢

在你失败的时候试着这样做

.fail(function(xhr){
  Response.Write
  alert(xhr.responseText);
  }
嗨-我得到“xhr未定义”。回复的目的是什么?这不是有效的javascript语句。我不明白吗?
function(e)
应该是
function(xhr)
console.log(jqXHR);打印出“结果=未定义”,textStatus的值为“错误”。