Доступ к выборке в _ из источника _ заблокирован политикой CORS: Ответ на запрос предполётной проверки не проходит проверку контроля доступа: нет статуса HTTP ok - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь делать авторизованные запросы к API LinkedIn после использования OAuth2.0 для входа пользователей. Я продолжаю получать сообщения об ошибках политики CORS и нуждаюсь в помощи при отправке правильных заголовков, чтобы эти ошибки больше не возникали.

Я пытался включить пару разных заголовков 'Access-Control-Request', но я продолжаю получать ту же ошибку. Я почти уверен, что это как-то связано с заголовком «Авторизация», который я отправляю в API, но этот заголовок требуется из документации для получения правильной информации.

https://docs.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow?context=linkedin/context#step-1-configure-your-application

Код, который я использую для этого звонка, показан ниже ...

async function getProfileData(accessToken, expiresIn) {
  const requestUrl = `https://api.linkedin.com/v2/me`;
  const response = await fetch(requestUrl, {
    method: 'GET',
    headers: {
      'Host': 'api.linkedin.com',
      'Connection': 'Keep-Alive',
      'Authorization': `Bearer ${accessToken}`,
      'Origin': REDIRECT_URI,
      'Access-Control-Request-Method': 'GET',
      'Access-Control-Request-Headers': 'Content-Type, Authorization'
    }
  });
  return response;
}

accessToken в данном случае поступает из предыдущего сетевого вызова с использованием кода авторизации из предыдущего шага. Все до этого работает, и я получаю ответ с тем, что я считаю допустимым токеном доступа.

Раньше я получал сообщение о том, что мой токен доступа недействителен, хотя я шаг за шагом следил за документацией, чтобы получить его. Я не уверен, является ли это той же проблемой или нет, но я не вижу причины, по которой у меня был бы недействительный токен (токен не истек, и я никогда не отклонял разрешения на вход в систему).

Ответ, который я ожидаю получить от вызова, - это базовые данные профиля пользователя, который вошел в систему, но вместо этого я получаю следующее:

OPTIONS https://api.linkedin.com/v2/me 401
getProfileData @ app.js:74
(anonymous) @ app.js:50

Access to fetch at 'https://api.linkedin.com/v2/me' from origin 'https://simple-linkedin-login2.netlify.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
...