防止未处理的jQuery AJAX错误

时间:2013-05-10 11:49:48

标签: jquery ajax http error-handling

我知道如何接收服务器数据或错误。有很多方法。例如:

$.ajax({
    type: "get",
    url: "/widgets/",
    success: function (data, text) {
        console.log('this is a data');
    },
    error: function (request, status, error) {
        console.log('this is an error');
    }
});

请看这张图片:

result in chrome developer console

我有我的错误功能,我在那里做我需要的。 如何防止第一行出错。 我测试了4xx和5xx错误,但没有区别。 我知道,当隐藏开发人员控制台时,最终用户不会看到此错误。

我需要这个来设计一个API。 我知道我可以从服务器发送200个响应,并附加一个参数,表明这是一个错误或成功的结果。

但是,如果我可以发送4xx或5xx响应,则无需额外参数。 这种方式对我来说有一些额外的收获。例如,我可以将成功结果应用于我的客户端模型,而无需担心额外的args。

谢谢

1 个答案:

答案 0 :(得分:14)

当返回错误状态代码(4xx,5xx)时,AFAIK无法使红色物品消失。浏览器使用它们来指示某些内容可能没有按预期发生。这些仅仅是装饰,因为4xx和5xx状态代码完全有效,所以我没有看到你想要消除它们的原因。

正如您自己所说,您的另一个选择是发送“ 200个来自服务器的响应,并附加一个参数,表明这是一个错误或成功结果”。

我当然建议使用4xx和5xx代码(这就是它们的设计目的)并且不再担心浏览器在开发者控制台(又称红色东西)中的抬头警告。

另请参阅thisthis在获取其他类型资源(图像,文件等)时引用类似错误的问题。你看到的错误实际上是相同的。