当前位置: 首页 > news >正文

Angular:跨域请求携带 cookie

新建拦截器,设置 XMLHttpRequest:withCredentials 属性

1. 新建文件夹 http-interceptors

该文件夹下可有多个不同用途的拦截器

2. 新建拦截器 common.interceptor.ts

import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from "@angular/common/http";
import { Injectable } from "@angular/core";
import { Observable } from "rxjs";@Injectable()
export class CommonInterceptor implements HttpInterceptor {intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {return next.handle(req.clone({withCredentials: true}));}

3. 用一个数组汇总起来,统一引入: index.ts (后续需要添加拦截器,只需加入到该数组即可)

import { HTTP_INTERCEPTORS } from "@angular/common/http";
import { CommonInterceptor } from "./common.interceptor";export const httpInterceptorProvides = [{provide: HTTP_INTERCEPTORS,useClass: CommonInterceptor,  //指定使用哪个拦截器multi: true  //表示可设置多个拦截器}
]

4. 引入拦截器使用: service.module.ts

import { isPlatformBrowser } from '@angular/common';
import { InjectionToken, NgModule, PLATFORM_ID } from '@angular/core';
import { httpInterceptorProvides } from './http-interceptors';export const API_CONFIG = new InjectionToken('ApiConfigToken');
export const WINDOW = new InjectionToken('WindowToken');@NgModule({declarations: [],imports: [],providers: [{provide: API_CONFIG,useValue: 'http://localhost:3000/'},{provide: WINDOW,useFactory(platformId: Object): Window | Object {return isPlatformBrowser(platformId) ? window : {};},deps: [PLATFORM_ID]},httpInterceptorProvides]
})
export class ServicesModule { }
http://www.lryc.cn/news/285944.html

相关文章:

  • 【C++】list容器迭代器的模拟实现
  • Docker镜像操作
  • 【Java-框架-SpringSecurity】单点登录(认证和授权)- 随笔
  • 大数据开发之Scala
  • 数字时代的大对决
  • 网络防御保护1
  • 解决Windows下Goland的Terminal设置为Git Bash失败
  • x-cmd pkg | jq - 命令行 JSON 处理器
  • 网络安全笔记
  • php基础学习之代码框架
  • LCD-LMD-PSO-ELM的电能质量分类,LCD特征提取,LMD特征提取,粒子群算法优化极限学习机
  • 【ARMv8M Cortex-M33 系列 7 -- RA4M2 移植 RT-Thread 问题总结】
  • 分享 GitHub 上的敏感词汇工具类:sensitive-word
  • 洛谷P1319 压缩技术(C语言)
  • HQL,SQL刷题简单查询,基础,尚硅谷
  • MSG3D
  • kafka(二)——常用命令
  • 使用Flink处理Kafka中的数据
  • 跟着pink老师前端入门教程-day07
  • Pixelmator Pro Mac版 v3.5 图像处理软件 兼容 M1/M2
  • 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(15)-Fiddler弱网测试,知否知否,应是必知必会
  • 【vscode】远程资源管理器自动登录服务器保姆级教程
  • 写点东西《Javascript switch 语句的替代方法》
  • python学习笔记10(循环结构2)
  • Codefroces 191A - Dynasty Puzzles
  • HIVE中关联键类型不同导致数据重复,以及数据倾斜
  • CRM系统是如何解决企业的痛点的?
  • 系统架构14 - 软件工程(2)
  • vue封装接口
  • Dell戴尔XPS 8930笔记本电脑原装Win10系统 恢复出厂预装OEM系统