请求标头未从拦截器角度 2/4 成功更新(401 处理)

2024-01-20

我正在使用 Http 拦截器并尝试重试失败的请求来处理401 error。我正在尝试设置一个新标头来更新请求,但它不起作用。

我注意到我的标头没有通过请求设置,而是转到lazyUpdates内部标头。任何人都可以告诉我为什么会发生这种情况。检查我的网络后,我发现通过重试请求旧标头被传递,这是'x-auth-token'并且不会发送新的标头。

拦截器.ts

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        request = request.clone({
            setHeaders: {
                'x-auth-token': this.authService.getToken()
            }
        });

        return next.handle(request).do(event => {}, err => {
            if (err instanceof HttpErrorResponse && err.status == 401) {

                request = request.clone({
                    setHeaders: {
                        'Content-Type': 'application/json',
                        'Authorization': 'sample-auth'
                    }
                });

                return next.handle(request)
            }
        });
    }

包含延迟加载值而不是标头的标头:

我已经经历过这个link https://stackoverflow.com/questions/45202208/angular-4-interceptor-retry-requests-after-token-refresh

有任何想法吗?

我仍然有同样的问题。有人请建议我可以采取什么措施来正确更新标头。


我认为问题出在请求的克隆上。你需要做这样的事情。

request = request.clone({
     headers: request.headers.set("Authorization", `sample-auth`)
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

请求标头未从拦截器角度 2/4 成功更新(401 处理) 的相关文章

  • Firestore从集合中获取文档ID

    我正在尝试使用 id 检索我的文档 但无法弄清楚 目前我像这样检索我的文档 const racesCollection AngularFirestoreCollection
  • asp.net 核心、角度 2、PrimeNG

    I use aspnetcore spa 模板 https www npmjs com package generator aspnetcore spa作为创建管理面板的起点 接下来我添加PrimeNG http www primeface
  • Angular 2 无线电列表中的模型不会更新

    我正在尝试构建一个 Angular 2 组件 它显示带有无线电的选项列表 它工作正常 但它answer组件的字段 绑定在内部 ng model answer 选择其中一个选项时不会更新 我做错了什么还是这不是创建单选选项列表的方法 div
  • Angular4 Material md-table 列宽度像普通表一样自动调整大小

    我在 Angular 4 应用程序中使用 md table 因为我将 Material 用于 UI 格式的其他部分 当我使用基本上没有 CSS 的常规表格时 列会自动设置格式以适合最宽的 td 元素 使用 md table 除了太宽的单元格
  • 在 MatDialog Content Angular 7 中添加新行

    我正在使用 MatDialog 并尝试在内容定义中添加新行 两个都 n and 没有这样做 有没有另一种方法无需手动进入 html 并更改它 因为它是可重用的组件 var status MatDialogRef
  • 所有的index.ts都是用来做什么的?

    我一直在研究一些种子项目 所有组件似乎都有一个从该组件导出 的 index ts 我在任何地方都找不到它的实际用途 E g https github com mgechev angular2 seed tree master src cli
  • 谷歌地图使用值 BESbswy 在内部创建隐藏的 div 和 span 并降低角度性能

    我在我的角度项目上使用谷歌地图 API v3 但是当我将地图添加到我的项目时 谷歌地图会创建一个隐藏的 div style height 1px width 1px span style font size 48px width 1 hei
  • angular2 使用 router.subscribe 来观察 url 变化

    我在用着router event subscribe angular router观察 url 变化以执行if虽然声明event subscribe工作正常 但我的问题是我怎样才能避免重复我的if声明只是为了在这些网址上显示标题 这可能是别
  • Angular2 - 自定义 CSS / JS 文件的文件夹是什么? [复制]

    这个问题在这里已经有答案了 我必须在我的 angular2 应用程序中包含一组 CSS 和 JS 文件 为了将它们包含在内 正确的文件夹是什么当我进行构建时 我应该把它们放进去吗SRC 资产或以下SRC 我的文件夹 定义后 我如何将它们包含
  • 加载带有数据的 PROMISE 后的 Angular 2 渲染模板

    我是 AngularJS 2 0 的新手 基本上我是通过构造函数中的 Promise 加载数据 但模板是在 Promise 解析之前渲染的 知道如何实现这一目标吗 谢谢 M 您可以测试data在使用它之前 ul li item value
  • 使用 Angular2 中的服务在组件之间共享数据

    我正在使用 angular2 开发一个应用程序 我有一个场景 我需要在路由 使用 router navigate 时将复杂数据 对象数组 从一个组件传递到另一个组件 它们不是父子组件 它们是两个独立的组件 我用谷歌搜索了这个 大多数结果描述
  • 为什么 Angular takeuntil ngUnsubscribe 之前有一个“下一步”?

    有大量关于使用 takeUntil 运算符取消订阅流的信息 如下所示 export class CategoryOptionInputComponent constructor private svc MyService protected
  • 如何让 Angular 2 选择动态添加的 routerLink 指令

    正如所见这个笨蛋 https plnkr co edit K906Y8KtkgYVgAIsCLqE p preview 我动态地将 HTML 添加到我的一个元素中 这可以归结为 Component selector my comp temp
  • 在 Angular 2 Typescript 应用程序中使用 moment.js

    我在 Angular 2 Typescript 应用程序中使用 moment js 库时遇到了困难 即使在阅读了答案之后这个问题 https stackoverflow com q 35166168 1031097我无法让它工作 这就是我到
  • 验证以防止角度形式出现重复的形式值

    我有几个表单数组 我需要进行验证 以便每个表单行中的特定字段在所有表单数组中必须是唯一的 如果任何值出现多次 则两个表单字段都必须标记为红色 我设法编写了一个函数 以便如果这些字段有任何更改 该函数将返回 true false 但我不确定如
  • Angular 6 - 将事件处理程序添加到动态创建的 html 元素

    我想将点击事件附加到动态创建的 html 元素 单击事件应该能够触发组件中的另一个方法 我已经浏览过其他建议使用 ElementRef 附加事件的答案 但是 它不适用于我的情况 我正在使用 mapQuest API 来渲染地图 地图将绘制地
  • Angular6 材料垫选择列表中当前选择的值

    使用角度材质2垫选择列表 能够判断当前选项是选中还是未选中 Boolean 组件 html
  • Angular SlickGrid 对齐标题文本

    我正在使用角度SlickGrid并希望将列标题中的文本居中或右对齐 并非所有列都以相同的方式 我发现 有一个headerCssClass列定义中的属性 但我一直尝试 这种样式似乎从未被应用 对于列定义 id sourceNumber nam
  • Angular 4 Http POST 不起作用

    我希望每个人都做得很好 我最近开始使用 Angular 4 4 我一直在尝试将数据发布到我的 api 服务器 但不幸的是它不起作用 我花了大约两天的时间 但仍然没有成功 甚至已经尝试过 6 7 篇文章角 io https angular i
  • 找不到管道“货币”(AOT)

    我们有一个从 Angular 6 升级到 7 的 Angular 我们正在使用内置的currency管道 服务时一切正常 ng serve 以及在 DEV 中构建时 但是当我们尝试构建生产我们正在得到The pipe currency co

随机推荐

  • 如何使用 scipy.optimize.minimize 进行最大似然回归

    我如何使用最大似然回归scipy optimize minimize 我特别想使用minimize在这里运行 因为我有一个复杂的模型 需要添加一些约束 我目前正在尝试使用以下内容的简单示例 from scipy optimize impor
  • 如果没有 verifyProof、sessionInfo、临时证明或注册 ID,则无法创建 PhoneAuthCredential

    我正在尝试firebase电话验证 在我的电话号码上收到代码后 代码跳转到verifysignincode 方法 创建失败phoneAuthCredentials 程序捕获的异常是 无法创建PhoneAuthCredential没有任何一个
  • 在 Symfony 2 中验证没有形式的实体

    我正在为 Symfony 2 创建一个 REST API 控制器 我开始使用 SensioGeneratorBundle 创建 CRUD 并修改该控制器以充当 REST 控制器 但是 我没有表格 所以我正在考虑删除这部分 如何在没有表单的情
  • 我可以在打字稿中检查联合类型的类型吗?

    有没有一种方法可以针对语言中内置的联合类型对对象进行类似 instanceof 的查询 我有一个带有联合类型的类型别名 如下所示 type MyType Foo Bar Thing Each of Foo Bar and Thing继承自B
  • desiredAccuracy 和 distanceFilter 之间的区别

    很抱歉在这里成为菜鸟 我无法清楚地区分 CLLocationManager 属性距离过滤器 and 期望准确度 如果我希望我的应用程序为即使很小的距离 例如 100 200 米 提供不同的坐标 我应该为这些属性设置什么值 帮助将不胜感激 根
  • Homebrew 说 Xcode 已经过时了

    我正在尝试使用 Homebrew 执行软件包的安装 但是当我尝试运行安装时出现以下错误 错误 您的 Xcode 7 3 1 已过时 请更新到 Xcode 8 0 或删除它 Xcode 可以从 App Store 更新 我想在这台机器上保留
  • 更改 UISearchBar 放大图标颜色和位置

    我有一个 UISearchBar 我想更改初始放大图标 出现在 UISearchBar 中间的图标 的位置以及颜色或图标 到目前为止 我更改了色调和图标图像 但是 只有当我在模拟器上测试应用程序时才会显示新图标 但在实际设备 均运行 iOS
  • 具有索引签名的 keyof 类型运算符

    我正在阅读打字稿docs https www typescriptlang org docs handbook 2 keyof types html the keyof type operator并通过这段代码摘录得出 type Mapis
  • 如何使用通过 NPM 安装的 font Awesome 5

    我没有找到任何下一步该做什么的文档 我通过以下方式将 font awesome 安装到了我的项目中npm npm install save fortawesome fontawesome free webfonts 但现在怎么办 谁能指出我
  • SQL-92 (Filemaker):如何更新序列号列表?

    在其中一个 SortID 发生更改 例如从 444 更改为 444 1 之后 我需要使用 SQL 92 重新分配所有 SortID 从 1 开始 直到 Beleg 表的记录子集的 MAX SortID 我尝试了多种方法 例如 SET a 0
  • 如何让 ECS 任务承担另一个 AWS 账户的角色?

    我有一个审计容器 可以针对各种 AWS API 运行扫描 我希望所有这些都在产品帐户中作为 ECS 任务运行 但扫描其他帐户中的资源 是否可以将另一个帐户的角色设置为任务角色 我尝试过设置taskRoleArn在我的任务定义中从另一个帐户添
  • 如何在Python中创建命名空间包?

    我有一个具有以下结构的 Python 3 项目 project root init py sub init py actualcode py 我想使用 命名空间包 以便我的库与单独项目中的其他相关库共享公共命名空间 导入语句应该如下所示 f
  • 如何使用 OCMock 测试是否在完成处理程序块内调用对象的方法?

    我有一个方法 implementation SomeClass void thisMethod ObjectA objA APIClient connectToAPIWithCompletionHandler id result if re
  • ZF2 - BjyAuthorize - 如何从数据库获取规则和防护

    我使用 BjyAuthorize 和 Zend Framework2 来实现授权 并且能够成功集成数据库中的角色 现在我想从数据库表中获取我的规则和守卫 我怎样才能做到这一点 这里最简单的方法和 技巧 实际上是 将您的规则和防护设置为与示例
  • Firebase 托管部署到其他站点

    如何部署到同一项目中定义的其他 Firebase 托管站点 我创建了多个 Firebase 托管 站点 命令 firebase deploy 但始终部署到第一个 如何指定将静态文件部署到另一个 站点 和域 Thanks 您必须将其他站点添加
  • k个元素的最大和不大于m

    这个问题来自一个编程竞赛 我无法在可接受的时间内解决它 给你一个数组a of n整数 找出最大的总和s正是k不超过给定整数的元素 不一定连续 m s lt m 限制条件 0 lt k lt n lt 100 m lt 3000 0 lt a
  • 如何同时使用导航规则和 f:ajax

    这是我的场景 我想在某些情况下通过 Ajax 更新页面 在其他情况下执行导航规则 我的用例是登录表单 我希望他们在 uname password 失败时通过 ajax 收到错误消息 但如果成功则导航到新页面 有人使用 JSF2 0 f aj
  • Java isNan 是如何工作的?

    我正在看openjdk 1 7 0 25源码中我见过这个方法 Returns code true if the specified number is a Not a Number NaN value code false otherwis
  • RDS 集群和数据库实例概念

    我需要创建 RDS Aurora 5 7 数据库 我想我对RDS的概念不太清楚 这是正确的层次结构吗 aws rds cluster gt aws rds cluster instance gt aws db instance我应该需要定义
  • 请求标头未从拦截器角度 2/4 成功更新(401 处理)

    我正在使用 Http 拦截器并尝试重试失败的请求来处理401 error 我正在尝试设置一个新标头来更新请求 但它不起作用 我注意到我的标头没有通过请求设置 而是转到lazyUpdates内部标头 任何人都可以告诉我为什么会发生这种情况 检