Выбор ответа Middle CORS обновлено
Почему не виден заголовок ответа
Вопрос
Сервер на другом origin отдаёт X-Total-Count: 120, CORS для origin настроен. В DevTools заголовок видно, а res.headers.get('X-Total-Count') возвращает null. Как исправить?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Добавить на сервере Access-Control-Expose-Headers: X-Total-Count. Скрипту на чужом origin доступны только безопасные заголовки ответа (Content-Type, Cache-Control и т.п.).
Варианты ответа
- Добавить на клиенте в
fetchопциюcredentials: 'include' - Добавить на сервере
Access-Control-Expose-Headers: X-Total-Countправильный ответ - Добавить на сервере заголовок в
Access-Control-Allow-Headers - Переименовать заголовок без префикса
X-, например вTotal-Count
Разбор
Скрипту на чужом origin доступны только безопасные заголовки ответа (Content-Type, Cache-Control и т.п.). Остальные сервер открывает через Access-Control-Expose-Headers. credentials отвечает за куки, а не за заголовки. Allow-Headers перечисляет заголовки запроса, которые можно присылать. Префикс имени ни на что не влияет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.