Referer, Connection и Accept-Encoding запрещены в надстройке Firefox с XMLHttpRequest - PullRequest
1 голос
/ 14 января 2020

Я отправляю запрос 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"]
    }
  ]

}

1 Ответ

0 голосов
/ 15 января 2020

Если я не ошибаюсь, в последних версиях Firefox вы можете подключить browser.webRequest.onBeforeSendHeaders для выполнения работы. Эти заголовки запрещены в целях безопасности во многих браузерах, включая Chrome, но это очень обсуждалось, так как мы находимся в дополнительном контексте: запрещено ли это полезно, когда вы можете просто использовать этот обходной путь, чтобы сделать то же самое?

...