防止未处理的jQuery AJAX错误

ima*_*man 35 ajax error-handling jquery http

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

$.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');
    }
});
Run Code Online (Sandbox Code Playgroud)

请看这个图像:

导致chrome开发者控制台

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

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

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

谢谢

gka*_*pak 14

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

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

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

又见这个这个问题获取其他种类的资源(图片,文件等)时指类似的错误.您看到的错误实际上是相同的.

  • 有一种情况是,避免报告这些错误会很好:测试(特别是对Web应用程序进行无头测试).例如,您为失败的ajax请求编写测试(例如使用mocha-phantonJS).在测试摘要中出现所有这些错误很烦人. (2认同)
  • 我检查一下页面是否存在,红色错误使它看起来好像出了点问题,因此最好将其删除。 (2认同)