Я работаю над веб-расширением, которое отправляет несколько запросов 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?