Для чего в fetch options добавляют credentials: true?
Пытаясь найти ответ, единственное, что нашел это попытка работы с CORS
Но если мы на сервере настроили CORSдля всех или определенные адреса, к чему тут credentials: true?
Ведь мы и так можем добавлять в заголовок Authorization данные для нашего запроса
А http only cookie, которые нам выдал сервер, они сами по себе тоже на сервер будут отправляться
Дополнительно:
Этот параметр не принимает значения true
https://developer.mozilla.org/ru/docs/Web/API/Fetc...
Не будут.
credentials: include
тогда кукисы, которые http only будут отправляться вместе с нашим запросом?
credentials нельзя присваивать true (он этого не ожидает).
https://developer.mozilla.org/en-US/docs/Web/API/F...
Дайте пример кода, где так делают
- Вопрос всё же скорее про опцию credentials у fetch.
https://developer.mozilla.org/en-US/docs/Web/API/F... - Lynn «Кофеман», почему-то подумал, что request и вот эти параметры - это одно и то же, спасибо за поправку
- Возможно я ошибся, но вопрос тот же, для чего нам указывать include?
Что оно дает нашим fetch запросам и настройкам на сервере? - Boris007, эта штука не зависит от cors.
include - попытаться отправить запрос с кредами, даже если это cross-origin запрос. Кинет ошибку, если это запрещено.omit - не отправлять креды вообще
same-origin - отправить креды, если это same-origin запрос и не отправлять, если это cross-origin
- Василий Банников, подскажи пожалуйста, что относится к кредам, что без них наш запрос не обработает сервером?
Просто в первый раз с таким столкнулся, всегда обычный fetch без этого свойства отправлялся - Boris007, В доке же написано, что креды - это
cookies, HTTP authentication entries, and TLS client certificates
https://developer.mozilla.org/en-US/docs/Web/API/f...
Также в документации есть вот такое:
The default is same-origin.
https://developer.mozilla.org/en-US/docs/Web/API/R...
Тоесть по-умолчанию креды отправляются если это same-origin запрос. - Василий Банников, спасибо, на русском этого куска текста нет )
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Когда вы добавляете credentials: true в fetch options, вы указываете браузеру, что запрос может содержать учетные данные, такие как куки, авторизационные заголовки или сертификаты. Это позволяет передавать учетные данные при кросс-доменных запросах, когда веб-страница находится на одном домене, а API на другом.
Пример использования credentials: true:
fetch('https://api.example.com/data', { method: 'GET', credentials: 'include' }) .then(response => { if (response.ok) { return response.json(); } throw new Error('Network response was not ok.'); }) .then(data => console.log(data)) .catch(error => console.error('There was a problem with your fetch operation:', error));
В этом примере мы отправляем GET запрос на https://api.example.com/data с использованием credentials: 'include'. Это позволяет браузеру включить учетные данные в запрос и получить доступ к защищенным ресурсам API.
Важно помнить, что использование credentials: true может быть опасно, если вы не доверяете ресурсу, на который отправляете запрос. Это может привести к утечке учетных данных пользователей. Поэтому всегда убедитесь, что вы доверяете и контролируете целевой ресурс перед использованием этой опции.