Авторизация open id pkce keycloak

Я пытаюсь прикрутить авторизацию keycloak openid pkce на мое js приложение. Кода дело доходит до обмена кода доступа возникает следующая проблема: При попытке обменять ключ доступа на токен возникает ошибка браузера

Отсутствует заголовок Access-Control-Allow-Origin

В панели разработчика я вижу что не было попытки отправить options запрос на сервер авторизации. Если сменить 'Content-Type' на 'application/json', то предварительный запрос пройдет успешно, но тогда я получу 415 ошибку. Проверял в postman, сервер keycloak на options запросы отвечает правильно, заголовок "Access-Control-Allow-Origin" присутствует. Вот пример функции:

async function getAccessToken(code) {
  const tokenEndpoint = `${keycloakConfig.url}/realms/${keycloakConfig.realm}/protocol/openid-connect/token`;

  const codeVerifier = sessionStorage.getItem('codeVerifier');
  const data = {
    grant_type: 'authorization_code',
    client_id: keycloakConfig.clientId,
    code: code,
    redirect_uri: window.location.href,
    code_verifier: codeVerifier,
  };
  const response = await fetch(tokenEndpoint, {
    method: 'POST',
    credentials: 'include',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    body: data,
  });
  const tokenData = await response.json();

  const accessToken = tokenData.access_token;
  return accessToken;
}

Ответы (0 шт):