我在网站上发送 XMLHttpRequest,但如果不设置 Referer
、Connection
、Accept-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
如果我不设置Connection
,XMLHttpRequest
会自动将 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/