首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

angular 6在拦截器中获取响应头

Angular 6是一种流行的前端开发框架,它提供了许多功能和工具来简化Web应用程序的开发过程。在Angular 6中,拦截器是一种用于处理HTTP请求和响应的中间件。它可以用于在请求发送之前或响应返回之后执行一些操作,例如添加身份验证令牌、处理错误等。

要在拦截器中获取响应头,可以使用Angular的HttpClient模块提供的HttpResponse对象。在拦截器的intercept方法中,可以通过HttpResponse对象的headers属性来获取响应头信息。

下面是一个示例代码,展示了如何在Angular 6的拦截器中获取响应头:

代码语言:txt
复制
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpResponse } from '@angular/common/http';

@Injectable()
export class MyInterceptor implements HttpInterceptor {
  intercept(req: HttpRequest<any>, next: HttpHandler) {
    return next.handle(req).pipe(
      tap(event => {
        if (event instanceof HttpResponse) {
          const headers = event.headers;
          // 在这里可以访问响应头信息
          console.log(headers.get('header-name'));
        }
      })
    );
  }
}

在上面的代码中,我们创建了一个名为MyInterceptor的拦截器,并实现了HttpInterceptor接口。在intercept方法中,我们使用tap操作符来订阅HTTP响应,并在响应返回时执行一些操作。如果响应是HttpResponse类型的,我们可以通过event.headers来获取响应头信息。

需要注意的是,为了使用拦截器,我们还需要在Angular应用程序的提供商中注册该拦截器。可以在app.module.ts文件中的providers数组中添加以下代码:

代码语言:txt
复制
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { MyInterceptor } from './my-interceptor';

@NgModule({
  providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: MyInterceptor,
      multi: true
    }
  ]
})
export class AppModule { }

这样,拦截器就会在每个HTTP请求和响应中被调用,并且你可以在拦截器中获取响应头信息。

关于Angular 6的更多信息,你可以参考腾讯云的Angular产品介绍页面:Angular产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • ASP.Net和IIS删除不必要的HTTP响应

    转载:http://www.cnblogs.com/CareySon/archive/2009/12/14/1623624.html 为了看到从服务器和浏览器之间通信的HTTP,你需要在浏览器安装一些插件...而这些HTTP日志会包含HTTP,在这篇文章我会假设读者已经熟悉了这个软件,假如你并不熟悉这个软件的话,我推荐阅读Troubleshooting Website Problems by Examining...使用Fiddler,找一个使用IIS和Asp.net的Web服务器,比如微软asp.net官方网站,通常在默认情况下,HTTP响应会包含3个Web服务器的自身识别....服务器-指定是何种服务器以及服务器版本,比如: Server:Microsoft-IIS/6/0 Server:Microsoft-IIS/7.0 X-Powered-By,用于表示这个站点是“Powered...1.1.4322 X-AspNetMvc,指定当前版本的Asp.net MVC(如果使用Asp.net MVC的话): X-AspNetMvc-Version:1.0        这些服务器自身识别信息大多数情况下并不会被浏览器使用

    1.9K10

    【Hybrid开发高级系列】AngularJS(二)——常用$服务

    rootscope是各个controllerscope的桥梁。用rootscope定义的值,可以各个controller中使用。...$apply()方法可以angular框架之外执行angular JS的表达式,例如:DOM事件、setTimeout、XHR或其他第三方的库。...: 信息     config: 生成原始请求的设置对象     statusText: http响应状态的文本 1.4.4 拦截器         angular通过拦截器我们可以从全局层面对请求以及响应进行拦截...1.6 $injector 1.7 $location 1.7.1 简介 location服务解析地址栏的URL(基于window.location),让你在应用代码获取到。...1.7.3 内置方法     absUrl( ):只读;根据RFC3986指定的规则,返回url,带有所有的片段。

    42140

    Angular 从入坑到挖坑 - HTTP 请求概览

    一、Overview angular 入坑记录的笔记第四篇,介绍 angular 如何通过 HttpClient 类发起 http 请求,从而完成与后端的数据交互。...类,然后通过依赖注入的方式注入到应用类 通常情况下,我们需要将与后端进行交互的行为封装成服务,在这个服务完成对于获取到的数据的处理,之后再注入到需要使用该服务的组件,从而确保组件仅仅包含的是必要的业务逻辑行为...; /** * 热度 */ hots: number; } 服务,引入请求响应对象的接口定义,然后设定 get 请求的响应对象为 GetQuotesResponseModel,之后使用时就可以以一种结构化数据的方式获取请求返回的数据信息...,从而不需要在后续的业务逻辑代码再进行判断请求是否成功 4.3.1、自定义拦截器 Angular 可以新建一个继承于 HttpInterceptor 接口的拦截器类,通过实现 intercept...,发送请求时会按照我们添加的顺序进行执行,而在接受到请求响应时,则是按照反过来的顺序进行执行 获取到导出的拦截器信息,就可以根模块中去导入需要注册的拦截器 import { BrowserModule

    5.3K10

    【译】ASP.Net和IIS删除不必要的HTTP响应

    X-Powered-By HTTP并不只是Asp.net存在,其他服务端语言,比如PHP,也会包含这个HTTP,当Asp.net被安装时,这个头会作为一个定制的HTTP插入IIS...,因此,我们需要将这个HTTP从IIS的配置删除,如果你的网站是共享的环境下并且没有使用IIS7并使用管道模式,你不得不为此联系你的空间提供商来帮你移除。...(如果你的网站是IIS7环境下,那你可以通过HTTP Module的形式通过编程来移除)      IIS6移除X-Powered-By HTTP: 启动IIS Manager 展开Website...目录 Website上点击右键并在弹出的菜单中选择属性 选择HTTP Header标签,所有IIS响应包含的自定义的HTTP都会在这里显示,只需要选择响应的HTTP并点击删除就可以删除响应的HTTP...而在IIS7移除X-Powered-By HTTP的方法是: 启动IIS Manager 展开Website目录 选择你需要修改的站点并双击HTTP响应头部分 所有的自定义HTTP全在这里了,删除相应的仅需要点击右边的

    3.1K10

    Angular HttpClient 拦截器

    之前的 Angular 6 HttpClient 快速入门 文章,我们已经简单介绍了 Http 拦截器。本文将会进一步分析一下 Http 拦截器拦截器提供了一种用于拦截、修改请求和响应的机制。...在上面的 AuthInterceptor 拦截器,我们实现的功能就是设置自定义请求。接下来我们来介绍如何利用拦截器实现请求日志记录的功能。...LoggingInterceptor 下面我们来定义 LoggingInterceptor 拦截器,该拦截器实现的功能是记录每个请求的响应状态和时间。...CachingInterceptor 实现缓存拦截器之前,我们先来定义一个 Cache 接口: import { HttpRequest, HttpResponse } from '@angular/...另外在实际的场景,我们一般都会为缓存设置一个最大的缓存时间,即缓存的有效期。在有效期内,如果缓存命中,则会直接返回已缓存的响应对象。

    2.6K20

    使用angular2使用nodejs创建服务器,并成功获取参数

    "这是第四个商品描述",["化学","体育"]), new Produce(5,"第五个商品",16.99,4.5,"这是第五个商品描述",["生物","图书"]), new Produce(6,...app.get("/api/products",(req,res)=>{ res.json(products) }) app.get("/api/products/:id",(req,res)=>{ //命令行打印...const server =app.listen(8000,"localhost",()=>{ console.log("服务器已经启动,地址是http://localhost:8000") }); 接着本地从创建好的服务器上获取数据...引入过了,这里需要声明构造函数里头,并引入Http from "@angular/Http"; 接着就是坑了,写完后,发现还是获取不到服务器上的数据: 接下来还有配置: 根目录新建一个文件:proxy.conf.json... 内容为: { "/api":{ "target":"http://localhost:8000" } } 然后package.json文件,修改一行 "start": "ng serve

    4.3K70

    AngularJs HTTP响应拦截器实现登陆、权限校验

    某些情况下,我们希望可以俘获所有的请求,并且将其发送到服务端之前进行操作。还有一些情况是,我们希望俘获响应,并且完成完成调用之前处理它。一个很好例子就是处理全局 http 异常。...响应对象包括了请求配置(request configuration),(headers),状态(status)和从后台过来的数据(data)。...通过实现 responseError 方法拦截响应异常: 有时候我们后台调用失败了。也有可能它被一个请求拦截器拒绝了,或者被上一个响应拦截器中断了。...不能完全依靠本地逻辑 我们model里面增加一个用户拦截器,rensponseError判断错误码,抛出事件让Contoller或view来处理 app.factory('UserInterceptor...'); }); 最后controller处理错误事件 $rootScope.

    2.2K90

    JSON Web Token(JWT)教程:一个基于Laravel和AngularJS的例子

    服务器使用在用户浏览器上设置的cookie进行响应,并包含用于标识用户的会话ID。 每个后续请求,由于用户数据存储服务器上,服务器需要找到该会话并对其进行反序列化。...Laravel 5,我们可以使用app/Exceptions/Handler.php文件捕获异常。使用render函数,我们可以基于抛出的异常创建HTTP响应。...我们的例子,Authorization如果用户被认证,我们要拦截每个HTTP请求并注入一个包含我们的JWT 的。我们也可以使用拦截器来创建一个全局的HTTP错误处理程序。...这是我们的拦截器的一个例子,它们浏览器的本地存储可用时注入一个token。...这意味着为了响应受限数据,对该数据的请求需要在其Authorization(header)或查询字符串(query string)内包含一个有效的JWT 。

    30.6K10

    okhttp之自定义拦截器

    我们知道 我们自定义的拦截器会最先执行,响应结果之后也会最后处理。 没看过 RealCall.execute()流程介绍 和 okhttp之五个拦截器的介绍 的小伙伴可以先去看看。...的三行代码是每个自定义拦截器必须的。 通过这三行代码,我们可以获取到 请求 和 响应 的信息。然后根据具体的业务需求去做对应的操作,比如日志打印,json转化,数据解密 等。..., addNetworkInterceptor是ConnectInterceptor之后执行的拦截器。...可以 RealCall.execute()流程介绍 知道。 官方的解释: addInterceptor: 无需担心中间响应,例如重定向和重试。...即使从缓存提供HTTP响应,也总是被调用一次。 遵守应用程序的原始意图。不关心OkHttp注入的标,例如If-None-Match。 允许短路而不是Chain.proceed()。

    1.1K70

    使用OkHttp进行网络同步异步操作

    Response 响应是对请求的回复,包含状态码、HTTP和主体部分。 重写请求 当将Request提交给OkHttp后,出于正确性和效率的考虑,OkHttp传输请求之前会重写请求。...有些请求可能有缓存的响应。当缓存响应过时时,OkHttp可以做一个额外的GET请求获取最新的响应。这要求"If-Modified-Since"和"If-None-Match"被添加。...如果一个额外的GET请求成功了,那么网络和缓存响应将会合并。 请求重定向 当请求的URL移动了,web服务器会返回一个302的状态码并指明文件的新地址。OkHttp将会重定向获取最终的响应。...应用拦截器发送请求之前和获取响应之后进行操作的,网络拦截器进行网络获取前进行操作的。 2.1、应用拦截器 下面定义一个应用拦截器,用于在请求发送前打印URL以及接受到响应后打印内容。...2.3、应用拦截器和网络拦截器的比较 每个拦截器由它各自的优势。应用拦截器 不需要考虑中间状态的响应,比如重定向或者重试。 只会被调用一次,甚至于HTTP响应保存在缓存。 观察应用程序的原意。

    4.6K10

    由浅入深,聊聊OkHttp的那些事(很长,很细节)

    特别的,如果我们的服务器或者域名有 多个IP地址 ,OkHttp 将在 第一次 连接失败时尝试替代原有的地址(对于 IPv4+IPv6 和托管冗余数据中心的服务是必需的)。...具体找寻 RealConnection 的过程,一共尝试了5次,具体如下: 尝试重连 call 的 connection,此时不需要重新获取连接; 尝试从连接池中获取一个连接,不带路由与多路复用;...具体的请求过程,网络请求依次会经过下列拦截器组成的责任链,最后发送到服务器。...具体的寻找连接的过程,一共进行了下面5次尝试: 尝试重连 RealCall 的 connection,此时不需要重新获取连接; 尝试从连接池中获取一个连接,不带路由与多路复用; 再次尝试从连接池中获取一个连接...例如使用网络拦截器添加请求、修改请求内容、检查响应码等。 相应的执行顺序上,网络拦截器是 先进先出(FIFO) ,应用拦截器是 先进后出(FILO) 的方式执行。

    1.4K30
    领券