angularjs HTTP拦截器responseError对象

时间:2018-09-06 12:29:33

标签: angularjs interceptor

我正在通过拦截器的responseerror对象中的reject.headers()函数进入对象下方,但无法在angularjs代码中获取特定的标头值,例如x-request-id值必须存储在某个变量中但无法为此,任何人都可以建议

{pragma:“ no-cache”,日期:“ Thu,06 Sep 2018 14:57:56 GMT”,x-content-type-options:“ nosniff”,x-request-id:“ VLCRpt3v”, x-frame-options:“ DENY”,…} 缓存控制 : “没有缓存,没有存储,最大年龄= 0,必须重新验证” 内容类型 : “ application / json; charset = UTF-8” 日期 : “星期四,2018年9月6日14:57:56 GMT” 过期 : “ 0” 语用 : “无缓存” 推荐人政策 : “同源” 传输编码 : “分块” x内容类型选项 : “ nosniff” X帧选项 : “拒绝” x-request-id : “ VLCRpt3v” x-xss保护 : “ 1; mode = block”

并尝试以下angularjs代码中的代码: var head = reject.headers(); var requestId = head.x-request-id

1 个答案:

答案 0 :(得分:0)

您最好创建一个拦截器并将其推送到$httpProvider拦截器。

这是它的外观:

angular.module('app')
      .service('headerRetrieveInterceptor', function ($q) {
        var service = this;
        service.responseError = function (response) {
            // Here Are Your Headers
            console.log(response.headers());

            return $q.reject(response);
        };
    }).config(function($httpProvider) {
        $httpProvider.interceptors.push('headerRetrieveInterceptor');  
})