Обойти предварительную проверку CORS в веб-расширении - PullRequest
0 голосов
/ 16 апреля 2020

Я работаю над веб-расширением, которое отправляет несколько запросов XHR в другие источники, которые требуют предварительных запросов CORS. Эти источники не поддерживают предварительный просмотр метода OPTIONS / CORS, поэтому запросы не выполняются.

Используя API-расширение webRequest chrome, я могу добавить правильный заголовок Access-Control-Allow-Origin, используя onHeadersReceived, но CORS предварительный запрос все еще не выполнен, поскольку сервер не поддерживает метод OPTIONS (Response to preflight request doesn't pass access control check: It does not have HTTP ok status.). Я попытался перенаправить запрос в onBeforeRequest, но это не работает, и API webRequest не поддерживает изменение кода состояния ответа.

Запросы выполняются из фонового сценария с разрешениями

"permissions": [
  "webRequest",
  "webRequestBlocking",
  "*://*/*"
],

В документации по webRequest Chrome Я вижу следующее примечание об обмане запросов CORS, которое заставляет меня поверить, что это возможно (я использую extraHeaders).

Начиная с Chrome 79, API-интерфейс webRequest по умолчанию не перехватывает запросы и ответы предварительной проверки CORS. Предварительная проверка CORS для URL-адреса запроса видна расширению, если для URL-адреса запроса в opt_extraInfoSpe c указан прослушиватель с параметром «extraHeaders». onBeforeRequest также может принимать 'extraHeaders' из Chrome 79.

Возможно ли обойти предварительную проверку CORS в расширении chrome?

...