#reactjs #cookies #axios
#reactjs #файлы cookie #axios
Вопрос:
Я получаю это значение cookie с сервера и хочу сохранить его в своем браузере.
Set-Cookie: succeeedd=noooo!; Path=/
Я пробовал с
const res = yield axios.post(`${config.authURL}/login`, data, {
headers: {
'Content-Type': 'application/json',
Cookie: 'cookie1=value',
},
});
и
const res = yield axios.post(
`${config.authURL}/login`,
data,
{
headers: {
'Content-Type': 'application/json',
},
},
{ withCredentials: true })
Оба не сохраняют файлы cookie в файлах cookie браузера. Как я могу сохранить значение Set-Cookie в браузере, чтобы я мог использовать их для аутентификации?
Комментарии:
1. Проверьте это .
{ withCredentials: true }
Должно быть в 3-м аргументе. Не 4-й.2. есть ли какой-либо способ, которым я могу использовать его с {headers: {}}?
Ответ №1:
Передайте withCredentials: true
, как показано ниже
const res = yield axios.post(
`${config.authURL}/login`,
data,
{
headers: { 'Content-Type': 'application/json' },
withCredentials: true
}
);
Для более общей конфигурации,
// You can add it in a separate config file
const request = axios.create({ withCredentials: true });
// While making API call
request.post(`${config.authURL}/login`, data, { headers: {...} });
Проверьте здесь для получения более подробной информации.
Ответ №2:
установить universal-cookie
с npm
import Cookies from 'universal-cookie';
const cookies = new Cookies();
axios.post(URL, data, {
headers: {
'Content-Type': 'application/json',
},
{ withCredentials: true }
})
.then((res) => {
let name = res.data.blobName;
let value = res.data.blobValue;
cookies.set(`${name}`, `${value}`);
})
.catch(function (error) {
console.log(error);
});
Комментарии:
1. Но тогда, как я могу получить значение с сервера и использовать его для сохранения в виде cookie?