CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Angular 路线图实战/课时/HttpClient 与安全
RawBlame
课时目录12 节

Angular 路线图实战

  1. 01Angular 入门与 CLI
  2. 02组件与生命周期
  3. 03模板与数据绑定
  4. 04指令与管道
  5. 05表单
  6. 06服务与依赖注入
  7. 07HttpClient 与安全
  8. 08Router 与懒加载
  9. 09RxJS 与 Signals
  10. 10SSR、测试与 i18n
  11. 11NgModule 与库
  12. 12综合练习

HttpClient 与安全

请求、Interceptor、XSRF。

35 分钟

HttpClient 与安全

路线图「HTTP Client」:HttpClient 返回 RxJS Observable,配合 Interceptor 统一鉴权、日志、错误处理。对比 Next.js 核心 的服务端 fetch,Angular SPA 默认在浏览器发请求到 API 网关或 Spring Boot。

学习目标

  • 配置 provideHttpClient() 并发起 GET/POST
  • 用 pipe + catchError 处理错误与 loading 态
  • 了解 Interceptor、XSRF 与 CORS 基础

核心概念

启用与请求

// app.config.ts
import { provideHttpClient, withInterceptors } from "@angular/common/http";

export const appConfig: ApplicationConfig = {
  providers: [provideHttpClient(withInterceptors([authInterceptor]))],
};
loadTracks() {
  this.loading = true;
  this.trackService.list().pipe(
    catchError((err) => {
      this.error = err.message ?? "请求失败";
      return of([] as Track[]);
    }),
    finalize(() => (this.loading = false)),
  ).subscribe((tracks) => (this.tracks = tracks));
}

Interceptor

export const authInterceptor: HttpInterceptorFn = (req, next) => {
  const token = localStorage.getItem("token");
  if (token) {
    req = req.clone({ setHeaders: { Authorization: `Bearer ${token}` } });
  }
  return next(req);
};

Angular 内置 XSRF 支持:Cookie + Header 双提交防 CSRF。开发环境 proxy.conf.json 转发 /api → localhost:8080。

与 React/Next 对照

AngularReactNext.js
客户端 HTTPHttpClient (Observable)fetch / axiosfetch in Client Component
拦截Interceptor封装 fetchmiddleware / Route Handler
服务端请求SSR HttpClient—Server Component fetch

练习

  • 对接 mock /api/tracks,展示 loading / error / 列表三态
  • Interceptor 为请求头加
X-Request-Id

小结

HttpClient + Interceptor 是企业 HTTP 标准组合。 下一课 Router。

加载本节练习…
← 上一课服务与依赖注入下一课 →Router 与懒加载