我遇到一个jQuery问题,这使得调试JavaScript变得比现在更糟糕:jqXHR延迟函数内的语句如果失败就会无声地失败,而我还没有找到捕获此错误的方法。请考虑以下示例:
var xhr = $.ajax({type: "GET",
url: "test.php"});
xhr.done(function() {
a += b;
});
其中a和b都是未定义的。这应该返回一个错误,但是所有的执行都停止了,我没有注意到任何事情都失败了。另一方面,如果我写下以下内容:
function thisIsAnError() {
a += b;
}
thisIsAnError();
它将按预期失败,向Firefox错误控制台和Firebug控制台记录“a未定义”。
Google搜索没有任何结果,也许jQuery中有一些错误处理函数我错过了?请注意,xhr.fail()不会捕获此错误,因为它不是失败的XHR。
答案 0 :(得分:0)
调试js(和imo最好的方法)的一种方法是使用chrome扩展名firebug的firefox。 Firefox有一个比chrome扩展更高级的插件,但两者都有效。
Alos,.fail()
无效,您正在寻找的是.error()
答案 1 :(得分:0)
您使用的$.get()
函数没有done()
方法。我相信你想要附加你的功能的是success()
方法。 jsFiddle exmample它的工作原理。