当前位置: 首页 > 面试题库 >

在有角的$ http服务中,如何捕获错误的“状态”?

公良俊楚
2023-03-14
问题内容

我正在读一本书,叫做《 Pro Angular JS》。但是,我有一个关于如何捕获错误状态的问题。

我编码的是:

$http.get(dataUrl)
    .success(function (data){
        $scope.data.products = data;
    })
    .error(function (error){
        $scope.data.error=error;
        console.log($scope.data.error.status); // Undefined!
        // (This is the spot that I don't get it.)                                         
    });

如果我编写代码“ console.log($ scope.data.error.status);” ,为什么console.log的参数未定义?

这本书中有一句话,“传递给错误函数的对象定义了状态和消息属性。”

所以我做了$ scope.data.error.status

为什么错了?


问题答案:

您的参数不正确,错误不会返回包含状态和消息的对象,而是按以下所述的顺序将它们作为单独的参数传递。

取自有角度的文档:

  • 数据– {string | Object} –用转换函数转换的响应主体。
  • status – {number} –响应的HTTP状态代码。
  • 标头– {function([headerName])} –标头获取函数。
  • config – {Object} –用于生成请求的配置对象
  • statusText – {string} –响应的HTTP状态文本。

因此,您需要将代码更改为:

$http.get(dataUrl)
    .success(function (data){
        $scope.data.products = data;
    })
    .error(function (error, status){
        $scope.data.error = { message: error, status: status};
        console.log($scope.data.error.status); 
  });

显然,您不必创建表示错误的对象,可以只创建单独的作用域属性,但可以应用相同的原理。



 类似资料:
  • 问题内容: 我想捕获一个特定的http错误,而不是整个家庭中的任何一个..我想做的是- 但是我最终捕获的是任何一种HTTP错误,但是我只想在指定的网页不存在的情况下捕获!可能是HTTP错误404 ..但我不知道如何指定仅捕获错误404并让系统为其他事件运行默认处理程序。 问题答案: Python 3 Python 2 只是捕获,处理它,如果不是Error 404,只需使用引发该异常即可。 请参阅P

  • 问题内容: 我喜欢Flask的错误捕获。很简单: 就像魅力。但这对于500错误代码不起作用。当出现问题时,我想捕获Python错误,代码中引发了异常。那可能吗? 我应该注意,如果我显式调用视图,则500错误处理程序确实可以工作。因此,这明确适用于Python代码失败的情况。 问题答案: 默认情况下,你所描述的是Flask的工作方式。我的假设是你正在调试模式下运行,因此在调试屏幕中会向你显示异常。确

  • 问题内容: 当用作标题时,如果地址(文件路径)不存在,如何捕获错误? 我完成了一个的内部,有点像这样: ContentCtrl : ContentView : 当我使用addr不存在:/ home /#/ content / profile_asdfa时,角度只是在循环中获取资源。因此,当哈希中没有模板文件时,我需要捕获ng-include错误。有谁能够帮我 ?谢谢! 问题答案: 在源代码中查找n

  • 需要捕获python中HTTP错误的响应主体。当前正在使用python请求模块的raise_for_status()。此方法仅返回状态代码和说明。需要一种方法来捕获响应主体以获取详细的错误日志。 如果在某些不同的模块中存在类似的必需特性,请建议python请求模块的替代方案。如果没有,请建议可以对现有代码进行哪些更改以捕获所述响应主体。 当前实现仅包含以下内容:

  • 这可能看起来很愚蠢,但是我试图在Axios中请求失败时获取错误数据。 是否可以获取一个可能包含状态代码和内容的对象,而不是字符串?例如:

  • 问题内容: 我正在使用PHP函数将数据从本地计算机发布到Web服务器。我的代码如下: 不幸的是,我无法捕获任何错误,例如404、500或网络故障。那么,我如何得知数据没有发布到远程或从远程检索呢? 问题答案: 您可以使用该功能检测是否有错误。例如: