如何为所有 XMLHTTPRequest 设置默认标头

2023-12-04

问题描述

我们正在运行 Kibana 4.3 服务。我不想修改源代码。

目标是添加一个加密令牌,将其称为 A-Token 到浏览器向 Kibana 发出的每个 Ajax 请求。

背景

Kibana 服务由 nginx 代理。

当用户向 Kibana 服务发出 Ajax 请求时,该请求会被 nginx http_auth_request 代理拦截,并传递到验证令牌的“auth”服务。如果它丢失或无效,则“auth”将返回 201 到 http_auth_request 并执行对 Kibana 服务的请求,否则它返回 404 并且请求被拒绝,因为它是在没有有效令牌的情况下发出的。

(该方案基于加密令牌模式,通常用作在无会话情况下(例如当前情况)跨站点脚本编写的对策)。

我阅读了 W3 XMLHttpRequest 文档,似乎 setRequestHeader 需要在打开之后和发送之前运行 - 这意味着该方案在一般情况下是不可能的,或者非常依赖于 JS 平台。

使用 Jquery .ajaxSetup 进行的测试(如本例所示)确认无法独立设置标头:

$.ajaxSetup({
    beforeSend: function(xhr) {
                xhr.setRequestHeader(A-Token", 1314159);
                  }
});

寻找不需要分叉 Kibana 的可能解决方案。

Danny


我也在寻找这个问题的解决方案,但找不到任何东西,然后我想出了下一个解决方案:

        XMLHttpRequest.prototype.origOpen = XMLHttpRequest.prototype.open;
        XMLHttpRequest.prototype.open   = function () {
            this.origOpen.apply(this, arguments);
            this.setRequestHeader('X-TOKEN', 'the token');
        };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为所有 XMLHTTPRequest 设置默认标头 的相关文章

随机推荐

  • sql server 中的顺序分组依据

    对于该表 ID Status Value 1 1 4 2 1 7 3 1 9 4 2 1 5 2 7 6 1 8 7 1 9 8 2 1 9 0 4 10 0 3 11 0 8 12 1
  • 在 Hadoop 中链接多个 MapReduce 作业

    在许多应用 MapReduce 的现实生活中 最终的算法最终都是几个 MapReduce 步骤 即Map1 Reduce1 Map2 Reduce2等等 因此 您可以将最后一次归约的输出作为下一个映射的输入 一旦管道成功完成 您 通常 就不
  • Firebase Child 必须是非空字符串且不包含

    我正在使用 Firebase 在 Swift 中编写一个基本的消息应用程序 我已经完成了应用程序的大部分内容 但在 ChatViewController 中我收到此错误消息 Terminating app due to uncaught e
  • XSLT:删除多余的空白字符,保留节点

    所以我的问题是这样的 我有一个在很多地方使用的转换文档 并且通常处理许多小型格式转换 在一种特定情况下 我需要从结果中删除空格 输出看起来像这样 n 某事非常重要 带有上标注释1 n 我尝试过以下变体
  • SSDT 部署后脚本

    我想在部署后忽略部署后脚本 在 SSDT 中将特定于分支的部署后脚本部署到生产环境后 如何存档 删除该脚本 有没有最佳实践 我以前所做的就是创建日志表并存储所有执行的脚本 这是表结构 CREATE TABLE dbo publish scr
  • 流媒体音频 (YouTube)

    我正在写一个CLI音乐媒体平台 其中一项功能是您可以直接从 CLI 播放 YouTube 视频 我真的不知道该怎么做 但这听起来是最合理的 我将使用那些可以从 YouTube 下载音乐的网站 例如 http keepvid com 然后我直
  • 按下 UIbutton 后如何更改 UIbutton 标题?

    按下 btn1 后 我无法更改 UIButton btn2 的标题 当我使用 definition settitle Show Word forState UIControlStateNormal它改变了原来的btn1 这是供您审核的代码
  • 当我使用 ISNUMERIC() 时,为什么转换失败?

    SELECT CAST Revenue Size M AS float FROM Raw Data A WHERE ISNUMERIC Revenue Size M 1 我收到错误 将数据类型 nvarchar 转换为 float 时出错
  • Delphi 2009 的通用链表

    我正在查看 Generics Collections 并注意到没有链接列表 当然 它们制作起来很简单 但我觉得很奇怪没有一个 或者我只是错过了 与新的现代数据结构相比 链表是否已经过时了 或者是否需要通用的链表 有人知道其中一个吗 你知道吗
  • 带有 Flutter 和 Firestore 的 GridView

    我正在尝试从云 Firestore 记录制作一个简单的 GridView 我遵循了很多视频教程 但没有成功 这是代码 import package flutter material dart import package cloud fir
  • Camera.main空引用异常

    我是 C 和 Unity 的新手 我已经阅读了整个论坛 但我仍然陷入困境 这是我收到的错误 NullReferenceException 未将对象引用设置为对象的实例 ClickToMove Update 位于 Assets Scripts
  • 具有隔离范围版本的指令冲突

    在我的 Angular 应用程序中 我有一个指令 可编辑 它是在 Angular 版本 1 2 0 rc 2 上编写的并且运行良好 但是当我将框架升级到版本 1 2 13 时 指令损坏了 我检查了其他版本的功能 但很困惑 因为指令仅适用于三
  • 调用一个不带参数的函数,尽管它需要一个 [K&R-C]

    它是 K R C 代码如下 http v6shell org history if c 看main 方法 有这一行 if exp 但函数 exp 被声明为 exp s 所以需要一个论证 为什么这有效 你为什么要这样做 归根结底 这是 Uni
  • Swift 4 中的 UIImagePickerController 内存泄漏 Xcode 9

    在我的应用程序中 当我使用UIImagePickerController 我以为是我的应用程序的问题 但是在搜索解决方案时我找到了Apple的示例 并且我还发现该示例具有相同的内存泄漏 您可以在以下 URL 中找到该示例 https dev
  • 为什么此类型约束对于 List[Seq[AnyVal 或 String]] 失败

    我正在自学Scala并遇到了这个 继以下优秀答案之后Link 假设我有以下代码 object Example extends App val x Seq 1 2 3 val y Seq 1 2 3 class Or A B implicit
  • 在视图中运行时,sql 查询需要更多时间

    HI all 我有一个巨大的 sql 查询 当我将该查询放入存储的 Proc 中时 执行需要 5 秒 我将其作为查询运行 需要 4 5 秒 但当我在视图中运行它时 需要 5 分钟 请告知为什么它在视图中运行那么慢 sql查询如下 CREAT
  • 由 CamanJS 修改的 KineticJS 画布

    我正在尝试申请CamanJS过滤到使用 KineticJS 创建的画布 有用 Caman creator canvas function this lomo render 应用 CamanJS 过滤器后 我尝试使用画布执行某些操作 例如 拖
  • 致命错误:base.facebook.php 中 facebook api 3.0.0 中未捕获 CurlException SSL 连接超时

    我对所有版本的 php sdk 都遇到相同的 ssl 错误 我增加了超时值 但仍然出现同样的问题 但是当我在不同的服务器上尝试相同的示例代码时 它运行良好 我认为可能存在一些与服务器相关的问题 例如 libcurl 或 openssl 的版
  • 为什么 django-nose 没有在我的模型中运行文档测试?

    我正在尝试将 doctests 与 django nose 一起使用 我的所有文档测试都在运行 除了模型中的任何文档测试 除非它是抽象的 class TestModel1 models Model gt gt gt print pass p
  • 如何为所有 XMLHTTPRequest 设置默认标头

    问题描述 我们正在运行 Kibana 4 3 服务 我不想修改源代码 目标是添加一个加密令牌 将其称为 A Token 到浏览器向 Kibana 发出的每个 Ajax 请求 背景 Kibana 服务由 nginx 代理 当用户向 Kiban