Заголовки в цепочке перенаправления 303 для предотвращения CORS - PullRequest
0 голосов
/ 10 июля 2019

Я звоню на внутреннюю конечную точку, которая отвечает кодом состояния 303 и URL-адресом в Location.

Значение Location является внешним веб-сайтом, который мы не можем контролировать, и перенаправление завершается ошибкой, поскольку браузер блокирует запрос по причинам политики CORS.

После некоторого анализа и исследований я понял, что проблема вызвана заголовками, которые мы отправили на внутреннюю конечную точку.

Что происходит, это:

  1. Пользователь нажимает кнопку

  2. Выполнен запрос к https://my-website.com/redirect-me

  3. В приведенном выше запросе мы устанавливаем заголовок my-custom-authentication-header, который представляет собой настраиваемый заголовок, который клиент использует для аутентификации всех служб

  4. Приведенные выше запросы возвращают код состояния 303 и заголовок Location, содержащий https://external-webiste.com/

  5. Браузер выполняет запрос к https://external-webiste.com с методом OPTION и следующими заголовками (отрывок):

Метод контроля доступа-запроса: GET

Контроль доступа-Запрос-Происхождение: my-website.com

Заголовки-Access-Control-Request-my-custom-authentication-header

  1. Сервер внешнего сайта отвечает следующим заголовком (выдержка):

Access-Control-Allow-Headers: нет

  1. Браузер отказывается выполнять запрос GET, так как запрос предпечатной проверки не прошел

В соответствии с спецификациями применяются правила предварительного запроса:

  • Для метода запроса либо есть совпадение с кэшем метода, либо это простой метод, а флаг принудительной предварительной проверки не установлен.

  • Для каждого заголовка заголовка запроса автора есть либо совпадение кэша заголовка для имени поля, либо это простой заголовок .

Мы находимся в последнем случае, поскольку my-custom-authentication-header не является простым заголовком , но мы не можем удалить его из внутреннего запроса, и я не знаю, каким образом можно удалить его из перенаправление запрос.

Как я могу это решить?

Спасибо

...