javascript - Firefox 附加组件中使用 XMLHttpRequest 拒绝 Referer、Connection 和 Accept-Encoding

标签 javascript xmlhttprequest http-headers firefox-addon http-referer

我在网站上发送 XMLHttpRequest,但如果不设置 RefererConnectionAccept-Encoding 这三个参数,它将不起作用 header 。 这是我用来添加它们的代码:

xmlHttp.setRequestHeader("Accept-Encoding", "gzip, deflate");
xmlHttp.setRequestHeader("Referer", referer);
xmlHttp.setRequestHeader("Connection", "close");

这是控制台上显示的内容:

Attempt to set a forbidden header was denied: Referer
Attempt to set a forbidden header was denied: Connection
Attempt to set a forbidden header was denied: Accept-Encoding

如果我不设置ConnectionXMLHttpRequest会自动将 header 设置为keep-alive

如何通过我的 Firefox 插件设置它们?我应该更改权限吗?这是我的 manifest.json:

{

  "manifest_version": 2,
  "name": "Task",
  "version": "1.0",

  "permissions": [
      "cookies",
      "*://*.website/*"  
  ],

  "content_scripts": [
    {
      "matches": ["*://*.website/*"],
      "js": ["task.js"]
    }
  ]

}

最佳答案

如果我没记错的话,在最新版本的 Firefox 中,您可以 Hook browser.webRequest.onBeforeSendHeaders 来完成这项工作。出于安全目的,许多浏览器(包括 Chrome)禁止使用这些 header ,但自从我们进入附加上下文以来,它已经被广泛讨论:当您可以简单地使用此解决方法来执行相同操作时,禁止此操作是否有用?

关于javascript - Firefox 附加组件中使用 XMLHttpRequest 拒绝 Referer、Connection 和 Accept-Encoding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59734327/

相关文章:

javascript - 如何在 html 表格中动态添加行

javascript - 突然退出循环

javascript - 删除给定位置的对象的属性

javascript - 视频标签的 XMLHttpRequest?

javascript - XMLHttpRequest 身份验证在 Firefox 中不起作用

javascript - 无法从 youtube 播放列表中删除视频

api - PHPUnit - getallheaders 不起作用

apache - Last-Modified 不适用于 .htaccess

javascript - 使用 fetch() 加载纹理的意外递归

c++ - 是否可以从 http header 中找到文件名