当返回头为404时,jquery$.ajax抛出js错误

当返回头为404时,jquery$.ajax抛出js错误,jquery,Jquery,我在这里经历了一些奇怪的事情,我不记得曾经遇到过。我正在对我的服务器(codeigniter后端)执行一个普通的$.ajax调用,如果找不到某些资源,我将返回一些错误消息以及404头。jQuery识别出发生了错误,并运行正确的错误回调。问题是它也会在浏览器中抛出一个js异常,因此firebug会抱怨(或者浏览器可能使用的任何js控制台)。这是一种新的行为吗?我不记得jquery在返回404头时抛出js错误。相关代码如下: $.extend({ gallery: function (url

我在这里经历了一些奇怪的事情,我不记得曾经遇到过。我正在对我的服务器(codeigniter后端)执行一个普通的$.ajax调用,如果找不到某些资源,我将返回一些错误消息以及404头。jQuery识别出发生了错误,并运行正确的错误回调。问题是它也会在浏览器中抛出一个js异常,因此firebug会抱怨(或者浏览器可能使用的任何js控制台)。这是一种新的行为吗?我不记得jquery在返回404头时抛出js错误。相关代码如下:

$.extend({
    gallery: function (url, data) {
        //send a request to an arbitrary url with some data. Expects to
        //get json returned.
        return $.ajax(State.url + url, $.extend({
            dataType: 'json',
            type: 'post'
        }, data));
    }
}); 
以上是我在应用程序中使用的全局ajax函数。我在该函数中尝试了各种各样的错误函数,但都没有用,我总是在firebug中抛出js错误。有什么想法吗?我得到的实际js错误是:

NetworkError: 404 Not Found

这是您的控制台功能,而不是一些jQuery的问题。尝试摆弄你的控制台选项。甚至谷歌Chrome也告诉我们XHR失败了或者类似的事情


注:从未使用过萤火虫。但它肯定只是里面的某个东西。

是的,它抛出了一个JS异常,这很奇怪。你可以用
try{}catch{}
来包装它,但我认为它不应该这样做……我想看看如何处理错误的例子。我假设您在.ajax调用中使用了“error”参数(提供的代码是一个扩展,对吗?)。您也可以使用状态代码来捕获404,尽管您可能不想对每个状态代码进行微管理。Greg Pettit-我还没有做到这一点,所以我的$.ajax函数没有错误函数。出于测试目的,我在上面的ajax函数中添加了一个错误处理程序,但在firebug中仍然会出现js错误。我还尝试了无数其他错误头(400404500只是为了好玩),它们给了我一个js异常。我以前使用过类似的$.ajax,不记得需要担心使用try/catch…facepalm…看起来我勾选了firebug“显示网络错误”复选框…叹气…感谢大家查看…关闭此对话框的正确方法是什么?发布答案并接受它?@Greg:如果没有其他人发布了正确的答案,你可以发布自己的答案,然后再接受。你是对的,Nishchay,这是一个特定于firebug的设置。谢谢