пожалуйста?
Может кто работал на JS с API яндекса. Пытаюсь получить данные о пользователе по эндпоинту https://login.yandex.ru/info но браузер выкидывает эксепшен:
Access to XMLHttpRequest at 'https://login.yandex.ru/info' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
Не очень понимаю как обойти эту проблему, делаю такой же запрос в postman - он проходит успешно.
Код запроса:
getUserInfo(authHeader: string): Promise<IUserResponse> {
return this.httpClient.get<IUserResponse>(
'https://login.yandex.ru/info',
{
headers: {
'Authorization': authHeader
}
}
).toPromise();
}
Инфу брал отсюда: https://yandex.ru/dev/id/doc/dg/reference/request.html. Прошу прощения за много букоф)
По какой причине ты решил делать туда запрос? В целом - никак не решить если яндекс тебе не откроет доступ с локалхоста
Через CORS-proxy попробуй https://jsfiddle.net/9jc3w4ax/ fetch('https://cors.bridged.cc/https://login.yandex.ru/info')
А это нормальный подход для продакшена или просто костыль для разработки?
Костыль. Ты когда приложение регистрировал, указывал домен? По идее с него не должно быть ошибок
указать там можно только редирект-страницу при OAuth авторизации
Вспомнил, токен который тебе в колбеке пришёл, должен храниться на сервере. И все запросы должны производиться с сервера, а информация о юзере сохраняться в базу. Либо пользователь передает токен на бэк, а уже бэк делает запрос и возвращает данные
ну вот, хотелось обойтись ангуляром только
Обсуждают сегодня