我正在网站上发送XMLHttpRequest,但是如果我没有设置三个Referer
,Connection
,Accept-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"]
}
]
}
如果我没看错,在最新版本的Firefox中,您可以挂钩browser.webRequest.onBeforeSendHeaders来完成工作。为了安全起见,许多浏览器(包括Chrome浏览器)都禁止使用这些标头,但是由于我们处于附加环境中,因此已经进行了非常多的讨论:当您可以简单地使用此替代方法来执行此操作时,该标头是否有用?