javascript - 在 angularjs 中访问自定义 http 响应 header

标签 javascript angularjs rest angular-http

Response from server

我正在尝试访问 header “error-detail”,正如您在浏览器网络检查器(上面的链接)中看到的那样, header 被返回。在服务器方面,我还将自定义 header 添加到“Access-Control-Expose-Headers”以允许跨域请求,因为这被建议用于解决其他问题。

下面是对服务器的请求以及成功/错误回调。

this.signon = function (request, onComplete, onError) {
    console.log("Calling server with 'login' request...");

    return $http.post("http://localhost:8080/markit-war/services/rest/UserService/login/", request)
        .then(onComplete, onError);
};

var onLookupComplete = function(response) {
    if (response.data.username)
    {
        //If user is returned, redirect to the dashboard.
        $location.path('/dashboard');
    }

    $scope.username = response.data.username;
};

var onError = function(response) {
    $scope.error = "Ooops, something went wrong..";
    console.log('error-detail: ' + response.headers('error-detail'));
};

当我尝试访问响应 header 时,如下所示:

    console.log(response.headers());
    console.log('error-detail: ' + response.headers('error-detail'));

这只会输出: 内容类型:“应用程序/json” 错误详细信息:空

错误详细信息 header 未映射到响应对象是否有原因?

最佳答案

我认为您走在正确的轨道上。要访问自定义 header ,您的服务器需要设置这个特殊的 Access-Control-Expose-Headers header ,否则您的浏览器将只允许访问 Mozilla docs 中列出的 6 个预定义 header 值。 .

在您的屏幕截图中,响应中不存在此类 header 。您应该查看此 cors header 的后端,以便它也出现在响应中。

关于javascript - 在 angularjs 中访问自定义 http 响应 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40852893/

相关文章:

javascript - typescript |从对象 T 中提取具有类型 K 值的所有键名

node.js - 使用 Nodejs 对 http 请求进行 IIS 身份验证

node.js - 回合制游戏的 REST API?

javascript - 在 Javascript 中从 DynamoDB 拆分 JSON 格式字符串的最佳方法是什么

javascript - 使用 Web Audio API 改变音频速度而不改变音高

javascript - 将 ngAnimate 与 Angular-Formly 结合使用 (ngHide/ngShow)

javascript - Express 和 angularJs $location.path 不重定向到/

javascript - AngularJS/Typescript 集成模式 - 范围方法

java - 如何为现有站点创建 Restful 服务

javascript - 捕获Firebase用户创建异常