浅谈angular9中拦截器的用法

本篇文章和大家一起聊聊angular9拦截器的使用。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

浅谈angular9中拦截器的用法

相关教程推荐:《angular教程》

拦截器统一添加token

我们在做一个后台管理系统时,需要给每个请求的请求头里面添加token,所以下面我们来了解一下angular的拦截器,并使用

拦截器使用

1.创建http.service.ts,用于网络请求

import { Injectable } from '@angular/core';import { HttpClient } from '@angular/common/http';@Injectable({  providedIn: 'root'})export class HttpService {  constructor(private http: HttpClient) { }  getData () {    return this.http.get('/assets/mock/data.json')  }}

登录后复制

2.创建noop.interceptor.ts,拦截器实现代码

import { Injectable } from '@angular/core';import {  HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse} from '@angular/common/http';import { Observable } from 'rxjs';import { tap } from 'rxjs/operators';import { Router } from '@angular/router';/** Pass untouched request through to the next request handler. */@Injectable()export class NoopInterceptor implements HttpInterceptor {    constructor (private router: Router) {}  intercept(req: HttpRequest, next: HttpHandler):    Observable<HttpEvent> {    // 拦截请求,给请求头添加token    let url = req.url // 可以对url进行处理    let token = document.cookie && document.cookie.split("=")[1]    // 登录请求排除在外    // if (!url.includes('login')) {        req = req.clone({            url, // 处理后的url,再赋值给req            headers: req.headers.set('Authorization', token)//请求头统一添加token        })    // }    return next.handle(req).pipe(        tap(         event => {          if (event instanceof HttpResponse) {           console.log(event);           if (event.status >= 500) {            // 处理错误           }          }         },         error => {          // token过期 服务器错误等处理        //   this.router.navigate(['/login']);         })       );  }}

登录后复制

3.在app.module.ts中使用

3.1imports中引入HttpClientModule

3.2HttpService的注册

3.3NoopInterceptor拦截器的使用

import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';import { HttpService } from './auth/http.service';import { NoopInterceptor } from './auth/noop.interceptor';@NgModule({   imports: [      BrowserModule,      HttpClientModule,      AppRoutingModule   ],   providers: [      HttpService,      { provide: HTTP_INTERCEPTORS, useClass: NoopInterceptor, multi: true }   ],   // ... 省略})

登录后复制

拦截器实现后的效果

在这里插入图片描述
拦截器一般配合路由守卫一起使用。

更多编程相关知识,请访问:编程学习课程!!

以上就是浅谈angular9中拦截器的用法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2718234.html

(0)
上一篇 2025年3月7日 22:13:10
下一篇 2025年2月22日 18:18:59

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 浅谈angular9中路由守卫的用法

    本篇文章给大家介绍一下angular路由守卫的使用。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 路由守卫是什么 任何用户都能在任何时候导航到任何地方。但有时候出于种种原因需要控制对该应用的不同部分的访问。可能包括如下场…

    2025年3月7日
    200
  • 浅谈使用angular9+echarts绘制3D地图

    本篇文章给大家分享一下angular中echarts的用法,介绍绘制3d地图的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 新建一个angular9的工程 1、安装了@angular-cli的脚手架 2、ng -v…

    2025年3月7日
    200
  • 了解Spring拦截器的原理和优点

    探究Spring拦截器的工作原理及优势 引言:Spring框架是Java开发中最常用的框架之一,它提供了丰富的功能和灵活性,使得开发者能够更加高效地开发应用程序。其中一个重要的组件就是拦截器(Interceptor)。本文将深入探讨Spri…

    2025年3月6日
    200
  • 探秘Spring拦截器的实现原理

    揭秘Spring拦截器的实现机制 引言 在开发Web应用程序时,我们经常需要在请求到达控制器之前或之后进行某些操作。例如,验证用户身份、记录日志、处理异常等等。Spring框架为我们提供了拦截器(Interceptor)来实现这些操作,拦截…

    2025年3月6日
    200
  • 详解Spring拦截器的原理和应用场景

    Spring拦截器的原理及应用详解 拦截器的概念及作用拦截器是Spring框架提供的一种自定义方法调用前后处理的机制,它可以在请求到达目标方法之前和之后,对请求进行一些预处理和后处理操作。拦截器类似于Servlet中的过滤器,可以对请求进行…

    2025年3月6日
    200
  • 揭秘 Golang 中的拦截器机制

    拦截器是一种设计模式,允许在方法执行前后插入自定义行为,在 go 中可以通过 net/http 中间件实现。它具有可扩展性、可重用性、可测试性等优点,可用于身份验证、授权、缓存、日志记录和自定义错误处理等场景。 揭秘 Golang 中的拦截…

    2025年3月4日
    200
  • 探讨Golang拦截器的实用性

    Golang拦截器的实用性探讨 在Golang中,拦截器(interceptor)是一种强大的机制,用于在代码执行前后拦截并执行自定义逻辑。拦截器能够帮助程序员实现各种功能,例如日志记录、权限控制、性能监控等。本文将探讨Golang中拦截器…

    2025年3月1日
    200
  • Golang拦截器究竟有何作用?

    Golang拦截器究竟有何作用? 在Golang中,拦截器是一种非常常见的设计模式,它可以用来在函数执行之前或之后拦截并修改其行为。拦截器可以帮助我们实现一些常见的功能,比如日志记录、性能监控、错误处理、权限验证等。本文将深入探讨Golan…

    2025年3月1日
    200
  • 解密Golang拦截器的利与弊

    Golang拦截器的利与弊 一、背景介绍 随着Go语言的流行与应用范围的不断扩大,开发人员对于如何更好地实现项目的高效、安全等需求也提出了更高的要求。在Go语言中,拦截器(Interceptors)被广泛应用于请求处理、日志记录、身份验证等…

    2025年3月1日
    200
  • 深度解析:Golang拦截器的实际应用效果

    Golang拦截器(interceptor)是一种强大的设计模式,在实际应用中可以实现诸多功能,如日志记录、错误处理、权限控制等。本文将深度解析Golang拦截器的实际应用效果,并通过具体的代码示例来展示其用法和效果。 1. 什么是Gola…

    2025年3月1日
    200

发表回复

登录后才能评论