Ошибка CORS при запросе в vk.api

198
27 июля 2021, 16:10

Перепробовал много вариантов, потратил пол дня сегодня. Не знаю, что делать

Ошибка:

Access to XMLHttpRequest at 'http://api.vk.com/method/users.search&access_token=TOKEN&v=5.101' from origin 'http://localhost' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

Код:

var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://api.vk.com/method/users.search&access_token=TOKEN&v=5.101', true);
// xhr.setRequestHeader( 'Content-Type', 'application/json' );
xhr.setRequestHeader('Access-Control-Allow-Origin', '*'); 
xhr.onload = function() {
    if (xhr.status === 200) {
        console.log('User\'s name is ' + xhr.responseText);
    } else {
        alert('Request failed.  Returned status of ' + xhr.status);
    }
};
xhr.send();

В самом VK создал приложение. Порт менял на разные. Так же использовал тестовый домен, результат тот же.

Answer 1

Сервер должен установить в заголовок ответа Access-Control-Allow-Origin, а браузер пользователя, получив такой заголовок разрешает доступ к ресурсам этого домена, который не совпадает с текущим. Иными словами, можно сколько угодно писать на клиентской стороне в хидере Access-Control-Allow-Origin, но если сервер этого не позволяет, то попытки будут тщетны. Вывод прост: ответ сервера должен содержать в Access-Control-Allow-Origin либо адрес Вашего сайта, либо звездочку, и тогда всё заработает.

Redirect_uri — это URL, на который будет переадресован браузер пользователя после разрешения им прав доступа при получении ключа Получение ключа доступа

При разработке веб-приложения с работой с API из Javascript, в redirect_uri необходимо указать адрес страницы на Вашем сайте. В целях безопасности, этот адрес также должен быть указан в настройках Вашего приложения (поля «Адрес сайта», «Базовый домен» и «Доверенный Redirect URI»).

Ссылка на документацию: Что такое redirect_uri?

Вам необходимо установить доверенный редирект URI в настройках Open API.

READ ALSO
Проблема с aws amplify/cognito в реакт приложении

Проблема с aws amplify/cognito в реакт приложении

Пробовал добавить авторизацию c Facebook через Amazon Cognito в моем реакт приложении, конфиг моего Aws Amplify выглядит так:

115
Замена строк в js файле при помощи c#

Замена строк в js файле при помощи c#

Доброе время сутокПрошу помочь разобраться с реализацией замены строк в

254