我有一个失败的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 responseText:"" statusText:"错误"
生成的JSON由ASP.NET Web API 2创建,因此我非常有信心它是有效的。它看起来确实有效。它的形式为:
{
success: true,
document: {
...
}
}
我如何弄清楚JQuery不满意的是什么?
更新:我发现了问题(跨域请求)。但我原来的问题仍然存在,如何从fail()函数中传递的变量中找出ajax请求失败的原因?
答案 0 :(得分:0)
你可以在getJSON调用之后使用.fail函数(就像你已经拥有它一样)并输出如下参数:
.fail(function(jqXHR, textStatus){ //ERROR
console.log('FAILURE: ' + textStatus);
console.log(jqXHR);
});
现在查看控制台,你可以看到textStatus,你会看到jqXHR对象。此对象包含可能有用的其他信息。让我知道这是否有效或有什么不清楚!谢谢!
答案 1 :(得分:-1)
尝试在失败中执行此操作。
.fail(function(xhr){
Response.Write
alert(xhr.responseText);
}