Я пытался найти решение в 100 различных похожих вопросах, но любой из них похож на этот, и предложенные решения мне не помогли.
У меня API, размещенный в том же источникестраница.Этот API возвращает код состояния 303 с заголовком Location , URL-адрес Location находится вне домена сайта.
Например,моя страница выглядит следующим образом:
https://example.com
, для которого с методом POST требуется следующая конечная точка:
https://example.com/api/payment
возвращенный код состояния, отображаемый на вкладке сети инструментов разработчика, равен 303 , тогда как заголовки, присутствующие в ответе , следующие (выдержка):
Контроль доступа-Разрешить-заголовки: Тип содержимого, Контроль доступа-Разрешить-Заголовки, Авторизация, X-Запрошено-С
Контроль доступа-РазрешитьМетоды: POST, GET
контроль доступа-разрешение-происхождение: *
Расположение: https://payment -page.com /
По завершении этого запроса браузер автоматически пытается перенаправить страницу оплаты.Но в этот момент что-то идет не так и процесс завершается неудачей.
Прежде всего, в сети появляется запрос на URL страницы оплаты с методом OPTION .В тех же деталях запроса есть следующее предупреждение:
Отображаются предварительные заголовки
Я полагаю, что запрос никогда не завершится, и XHR немедленно завершится неудачно с кодом состояния 0.
Кроме того, я вижу в консоли следующую ошибку:
Доступ к XMLHttpRequest по адресу https://payment -page.com / (перенаправлен из 'https://example.com/api/payment') от источника 'https://example.com/' заблокировано политикой CORS: Ответ на предпечатный запрос не проходит проверку контроля доступа: в запрошенном заголовке «Access-Control-Allow-Origin» нетресурс.
Проблема в том, что я не могу явно установить Access-Control-Allow-Origin , так как не мой код выполняет запрос, но он автоматически выполняетсябраузер.
Я прочитал официальные спецификации и прочитал советы по выполнению простого запроса CORS, но в этом случае я не устанавливаю явно какие-либо заголовки, если не для / api/пayment конечная точка, и, конечно, я не могу удалить свои заголовки из этой конечной точки, иначе это вызовет ошибку.
Что я могу сделать, чтобы избежать этой проблемы?