IE 11 не передает заголовок авторизации в вызове API - PullRequest
7 голосов
/ 25 июня 2019

Stack: ReactJS, axios, api, развернутые на AWS

В приложении «Мое реагирование» я вызываю API, развернутый на AWS с помощью axios. Это приложение отлично работает в Chrome и Firefox, но не работает в IE 11.

Все apis правильно настроены для разрешения Авторизации в заголовке контроля доступа enter image description here

Я использую приведенный ниже код для добавления заголовка авторизации и accessToken в запросе

   const axiosInstance = axios.create({
  baseURL: `https://abc.api.nonprod.org/`
});

export const createTokenHeaders = (idToken, accessToken) => ({
  authorization: `Bearer ${idToken}`,
  accessToken: `Bearer ${accessToken}`
});
// Add a request interceptor
export const reqInterceptor = config =>
  // get the bearer token and add it in the header
  Auth.currentSession()
    .then(data => {
      const idToken = data.getIdToken().getJwtToken();
      const accessToken = data.getAccessToken().getJwtToken();
      // eslint-disable-next-line no-param-reassign
      config.headers = Object.assign({}, config.headers, createTokenHeaders(idToken, accessToken));
      return config;
    })
    .catch(err => {
      console.log(err);
      throw new Error('Error getting bearer token');
    });

axiosInstance.interceptors.request.use(reqInterceptor);

export const performGet = (uri, queryParams = {}, headers) => {
  const requestParams = {
    params: queryParams,
    headers
  };
  return axiosInstance.get(uri, requestParams);
};

Когда я запускаю это приложение в chrome с localhost: 3000, тогда chrome правильно вызывает запрос OPTIONS, а затем получает запрос GET с правильным заголовком авторизации.

Но когда я запускаю то же приложение в IE, оно не вызывает запрос OPTIONS и не передает заголовок Authorization в запросе GET (однако он передает заголовок accessToken).

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

Возможно, вам нужно установить withCredentials: true, чтобы заголовки авторизации передавались запросам CORS.

0 голосов
/ 03 июля 2019

Ваш IE работает в режиме усиленной защиты?Кажется, это не проблема кода.https://www.npmjs.com/package/react-native-axios

реакция-нативная поддержка поддерживает IE11.используйте отладчик f12 и проверьте, не найден ли URL в сетевом трафике.

...