【问题标题】:How to add headers to a browser request without any browser extensions?如何在没有任何浏览器扩展的情况下向浏览器请求添加标头?
【发布时间】:2017-12-28 01:12:04
【问题描述】:

有时,需要为每个请求或从浏览器发出的特定请求添加特殊标头。执行此操作的常用方法是使用允许我们修改请求标头的浏览器扩展。有没有其他方法可以做到这一点,没有任何浏览器扩展?

PS - 我已经搜索过 SO,但没有找到一篇实际建议或展示如何做我需要的帖子。

【问题讨论】:

  • 使用代理是您可以接受的解决方案吗?
  • @User23332 - 听起来可以接受。

标签: javascript google-chrome firefox browser http-headers


【解决方案1】:

在设计用于发出自定义 HTTP 请求(XMLHttpRequest 和 fetch)的 API 之外,不可能向使用页面中嵌入的 JS 的浏览器发出的请求添加任意 HTTP 标头。

【讨论】:

    【解决方案2】:

    如果您控制想要此功能的网站,您可以通过将每个应用程序设置为安装ServiceWorker 来实现此目的。简而言之,服务工作者在您的浏览器中作为代理服务器运行。即使您没有打开网站,他们也可以执行诸如通知您更新等操作。

    在 ServiceWorker 中,您可以设置可以代表客户端应用执行一些异步任务的事件侦听器。这包括每次网页发出请求时触发的fetch 事件。

    Here's 写了一篇关于实现 ServiceWorker 的人也需要拦截网络请求的文章。您可以遵循其中的大部分内容,并在检查请求类型时更改逻辑。此时,您可以在代表应用程序调度之前添加任何特殊标头。

    【讨论】:

      【解决方案3】:

      如果不使用任何外部工具,就无法在现有 DOM 中编辑请求。最合适的是浏览器扩展,它正在编辑由 JavaScript 代码完成的现有 DOM 和 HTTP 请求(XMLHttpRequest 和 fetch)。

      如果网站的所有者是您,则有数百万种向请求添加标头的可能性。并且解决方案会有所不同,请考虑您使用什么库来执行请求。

      但一般不建议修改不属于您的网站数据。

      浏览器扩展正是您为您的问题找到的东西。 希望我的评论能帮到你。

      【讨论】:

        猜你喜欢
        • 2021-05-26
        • 1970-01-01
        • 2022-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-15
        相关资源
        最近更新 更多