Я в отчаянии из-за проблемы с IE. IE удаляет токен Bearer из заголовков запроса.
У меня есть действие:
export const createKitchen = (values, redirectFunc, offer) => async dispatch => {
const headers = getAuthHeaders()
const res = await axios.post(
`${baseURL}customer/kitchen/`,
values,
{ headers })
if(offer) dispatch(turnOfferIntoSchemas(res.data, offer))
)
}
Это действие вызывает это действие:
export const turnOfferIntoSchemas = (kitchen, offer) => async dispatch => {
const headers = getAuthHeaders()
await axios.get(
`${baseURL}offer/offer/submit/${kitchen.slug}/${offer.code}`,
{headers}
)
}
Функция getAuthHeader :
export const getAuthHeaders = () => {
const token = JSON.parse(localStorage.getItem('token'));
return {
"Accept": "*/*",
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json",
"Cache-Control": "no-cache",
"Pragma": "no-cache",
}
}
Этот код прекрасно работает во всех современных браузерах. Но это не работает с IE11. Первый запрос отправляется правильно с токеном Bearer, но IE просто удаляет токен для второго запроса.
Проблема хорошо описана здесь - но решение для меня не работает.
Я попытался добавить: document.execCommand('ClearAuthenticationCache', 'false');
-> не повезло
Я попытался обернуть второй вызов в вызове setTimeout -> не повезло.
Я попытался вернуться к .then. поймать, чтобы исключить проблемы с полифиллом -> не повезло
Я попытался передать заголовки вручную с помощью объекта -> не повезло
я попытался использовать fetch вместо axios -> не повезло
Мне отчаянно нужен способ сказать IE, чтобы он не пропускал токен. Есть ли решение этой проблемы?