Firefox: В КОРАХ Отсутствует заголовок разрешения

#http #cors

Вопрос:

Мой firefox отправляет предварительный запрос ПАРАМЕТРОВ на мой личный сервер, чтобы сделать последующий запрос GET с учетными данными.

Предполетный запрос включает заголовки

 Origin http://localhost:9670
Access-Control-Request-Headers authorization
Access-Control-Request-Method GET
 

Мой сервер отвечает

 Access-Control-Allow-Credentials true
Access-Control-Allow-Origin http://localhost:9670
Vary: Origin
 

Согласно документам, которые я нашел, это должно быть нормально.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials

Во всяком случае, мой firefox все еще утверждает

CORS Отсутствует заголовок разрешения

в разделе «Перенесено» вкладки «Сеть» в консоли разработчика.

Чего не хватает в ответе моего сервера?

Ответ №1:

В дополнение к

 Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://localhost:9670
Vary: Origin
 

ответ на предполетный запрос также должен содержать

 Access-Control-Allow-Methods: GET
Access-Control-Allow-Headers: Authorization
 

В противном случае проверка контроля доступа завершится неудачно, и ваш браузер не отправит фактический (предварительный) запрос. Видеть

Вы внедряете CORS с нуля в бэкэнде? Если да, то почему бы не использовать (хорошую) библиотеку CORS, которую вы могли бы настроить, чтобы позаботиться обо всем этом за вас?

Комментарии:

1. Я добавил эти два заголовка, и сейчас начинается предполетная подготовка! Спасибо.

2. Я должен проверить библиотеку cors, это может быть хорошей идеей.