IE11 удаляет заголовок авторизации? Решение для кэширования учетных данных в IE11? - PullRequest
0 голосов
/ 28 октября 2019

Я в отчаянии из-за проблемы с 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, чтобы он не пропускал токен. Есть ли решение этой проблемы?

...