使用XMLHttpRequest的Firefox附加组件拒绝引用,连接和接受编码

问题描述 投票:1回答:1

我正在网站上发送XMLHttpRequest,但是如果我没有设置三个RefererConnectionAccept-Encoding标头,它将无法正常工作。这是我用来添加它们的代码:

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

如果未设置Connection,则XMLHttpRequest会自动将标题设置为keep-alive

通过我的Firefox插件设置它们的方式是什么?我应该在permissions上更改一些内容吗?这是我的manifest.json

{

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

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

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

}
javascript xmlhttprequest http-headers firefox-addon http-referer
1个回答
0
投票

如果我没看错,在最新版本的Firefox中,您可以挂钩browser.webRequest.onBeforeSendHeaders来完成工作。为了安全起见,许多浏览器(包括Chrome浏览器)都禁止使用这些标头,但是由于我们处于附加环境中,因此已经进行了非常多的讨论:当您可以简单地使用此替代方法来执行此操作时,该标头是否有用?

© www.soinside.com 2019 - 2024. All rights reserved.