39

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

$.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');
    }
});

请看这张图片:

导致 chrome 开发者控制台

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

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

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

谢谢

4

1 回答 1

17

AFAIK 当返回错误状态代码(4xx、5xx)时,你不能让红色的东西消失。浏览器使用它们来指示某些事情可能没有按预期进行。这些仍然只是装饰,因为 4xx 和 5xx 状态码是完全有效的,所以我看不出你有什么理由要消除它们。

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

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

另请参阅这个这个问题,这些问题在获取其他类型的资源(图像、文件等)时涉及类似的错误。您看到的错误实际上具有相同的性质。

于 2013-05-10T13:54:50.387 回答