我在网站上发送了一个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"]
}
]
}发布于 2020-01-15 17:45:58
如果我没记错的话,在最新版本的火狐中,你可以使用browser.webRequest.onBeforeSendHeaders来完成这项工作。了解Chrome,出于安全考虑,这些头文件在许多浏览器中都是被禁止的,但自从我们进入一个附加组件环境以来,人们就一直在讨论这个问题:当你可以简单地使用这个变通方法来做同样的事情时,禁止这样做有用吗?
https://stackoverflow.com/questions/59734327
复制相似问题