Instagram API access_token запрос и Access-Control-Allow-Origin

контекст

Я пытаюсь получить токен доступа из Instagram API, используя их серверный / явный поток.

Когда пользователь успешно аутентифицирует и авторизует мое приложение, Instagram перенаправляет пользователя на мой redirect_uri с параметром кода. Получив этот код, я пытаюсь вызвать API Instagram, чтобы получить access_token.

проблема

Я успешно получил этот код, но для того, чтобы сделать этот обмен, мне нужно отправить POST-код вместе с некоторыми параметрами идентификации приложения к их конечной точке access_token:

$.ajax({
    type: 'POST',
    url: 'https://api.instagram.com/oauth/access_token',
    // Disable credentials as they were enabled by default
    xhrFields: {
        withCredentials: false
    },
    crossDomain: true,
    data: {
        client_id: client_id,
        client_secret: client_secret,
        grant_type: 'authorization_code',
        redirect_uri: callback_http,
        code: token
    },
    }).always(function(res) {
    console.log('Res from Instagram API', res);
    });

Проблема в том, что у меня возникает проблема Access-Control-Allow-Origin:

XMLHttpRequest cannot load https://api.instagram.com/oauth/access_token.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin '[here is my callback_http]' is therefore not allowed access.

Я попытался использовать dataType: 'jsonp' в качестве параметра вызова Ajax без какого-либо успеха (код 401).

Есть идеи? Заранее большое спасибо за вашу помощь!

3 ответа

Решение

Вы должны использовать серверный код для oauth при использовании явного потока на стороне сервера, он блокируется браузером из-за перекрестного запроса. если вы хотите использовать только JavaScript, используйте неявный поток на стороне клиента

Вы не можете, если он не размещен в вашем домене или у вас нет URL.

Вы можете обратиться к этому http://en.wikipedia.org/wiki/Same-origin_policy

если вы являетесь владельцем сервера, вы можете использовать htaccess для решения вашей проблемы. вопрос о том, как решить, что находится в stackru также..

Удачного кодирования!:D

используйте window.location.href, чтобы избежать проблем с корсами

window.location.href = https://api.instagram.com/oauth/authorize/?app_id=${clientId}&redirect_uri=${redirectUri}&scope=${scope}&response_type=${responseType}

Другие вопросы по тегам