#javascript #credentials #fetch-api
#javascript #учетные данные #fetch-api
Вопрос:
На странице MDN Fetch API (раздел Отправка запроса с включенными учетными данными) написано, что:
Чтобы вместо этого браузеры не включали учетные данные в запрос, используйте учетные данные: ‘omit’.
fetch('https://example.com', {
credentials: 'omit'
})
Однако изначально также написано, что:
По умолчанию fetch не отправляет и не получает никаких файлов cookie с сервера, что приводит к неаутентифицированным запросам, если сайт полагается на поддержание сеанса пользователя (для отправки файлов cookie должна быть установлена опция инициализации учетных данных).
Мой вопрос в том, что если я хочу опустить файлы cookie и заголовки авторизации, зачем мне вообще беспокоиться об использовании credentials: 'omit'
в первую очередь, если написано, что по умолчанию (без credentials
), fetch
не будут отправляться файлы cookie?
Комментарии:
1. Я чувствую, что это больше связано с обработкой заголовка Access-Control-Allow-Credentials .
2. Я думаю, что MDN имеет некоторую запутанную документацию. В firefox, если вы создаете объект запроса , по умолчанию для учетных данных используется значение «того же происхождения», хотя в документации указано, что по умолчанию используется значение «опустить»
3. Дальнейшее чтение предполагает, что разные браузеры имеют разные значения по умолчанию (по крайней мере, при создании объекта запроса, firefox, по-видимому, по умолчанию опускает, а chrome по умолчанию использует либо тот же источник, либо включает, в зависимости от версии — поэтому имеет смысл, чтобы документация документировала все допустимые параметры
Ответ №1:
Из-за этого обсуждения на whatwg / fetch значение по умолчанию было изменено с omit
на same-origin
в конце 2017 года.
Браузеры догоняли в 2018 году, поэтому вы можете видеть, что некоторые старые браузеры все еще используют omit
. Например, Firefox изменился с omit
на same-origin
, начиная с 61. Chrome изменен с версии 72. Вы можете проверить полный список здесь.
И что еще более интересно, стандарт на странице whatwg (последнее обновление 23 марта 2019) по-прежнему остается omit
.
Комментарии:
1. Таким образом, это означает, что страница документации MDN не обновлена?
2. Теперь у MDN есть небольшая сноска на странице: «С 25 августа 2017 года. Спецификация изменила политику учетных данных по умолчанию на same-origin. Firefox изменился с 61.0b13.»