【问题标题】:Extracting the specific header message from the $http response headers从 $http 响应标头中提取特定标头消息
【发布时间】:2016-03-04 09:21:38
【问题描述】:

我是(data,status,headers,config,statusText) 使用 $http.post() 在应用程序中进行服务器调用。服务器代码在 .net 中。对于特定用例,当流程失败时,服务器会返回业务异常以及消息。

现在我可以在 Chrome 的控制台中看到以红色打印的消息以及 404 代码。我还可以在顶部的 Fiddler 标题部分看到消息,如“HTTP/1.1 404 Message goes here”。但我不知道如何从响应标头中提取该消息。

我尝试了以下,

$http.get(requestURL).success(
                function (data,status,headers,config,statusText) {
                    //deferred.resolve(data);
                    console.log("In service",data,status,headers,config,statusText);
                }).error(
                function (data, status, headers, config, statusText) {
                    //deferred.reject(data);
                    console.log(data, status, headers, config, statusText);
                });

标题作为函数打印在控制台中,“函数匿名(名称)”我需要帮助从中提取一些东西,(如果可能的话)。 statusText 打印为未定义。我真的需要帮助,因为我需要向用户显示发送的消息。

如果重要:消息正在从服务器的“reasonPhrase”属性中发送

【问题讨论】:

    标签: .net angularjs http


    【解决方案1】:

    我不知道您使用的是哪个版本的 angularjs,但“传统”successerror 回调已被弃用一段时间。

    请考虑.then(...) 的新方法,请参见此处: https://docs.angularjs.org/api/ng/service/$http

    但要回答您的问题: 回调函数中的headers参数代表一个getter,所以需要调用它:headers()。您还可以在此处应用参数(特定标头)。

    【讨论】:

    • 添加 .then 与旧 Angular 一起使用,请参阅 Update for Legacy AngularJS v1.2
    • 感谢您的提示,不知道。因此,没有理由继续使用旧语法 @Saurabh - 您还将找到更多关于新方法的文档。
    【解决方案2】:

    首先,.success.error 方法已被弃用。你应该使用.then

    此页面上提供了完整的详细信息 - https://docs.angularjs.org/api/ng/service/$http

    在你的例子中,你应该使用这样的东西:

    $http.get(requestUrl).then(function (response) {
      // success handling
      console.log(response.headers());
    }, function (response) {
      // error handling
      console.log(response.headers());
    });
    

    response.headers 是一个函数。当您调用它 (var headers = response.headers();) 时,它将返回一个包含来自 HTTP 响应的标头的对象。

    根据上面链接页面上的详细信息,您可以在响应对象中访问以下内容:

    • data – {string|Object} – 使用转换函数转换的响应正文。
    • status – {number} – 响应的 HTTP 状态代码。
    • headers – {function([headerName])} – Header getter 函数。
    • config – {Object} – 用于生成请求的配置对象。
    • statusText – {string} – 响应的 HTTP 状态文本。

    【讨论】:

      猜你喜欢
      • 2018-11-07
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 2015-08-09
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      相关资源
      最近更新 更多