Как получить oauth access_token с помощью jQuery (localhost)? - PullRequest
1 голос
/ 03 июля 2019

Я пытаюсь получить access_token, используя jQuery. Проблема в том, что я не могу получить этот токен (сервер работает на локальном хосте). Сервер работает нормально (я пробовал это с почтальоном), но я не могу получить его с помощью jQuery. Браузер пишет после нажатия на кнопку.

Ресурс из «http://localhost:8080/oauth/token?callback=jQuery34105901959820360243_1562175129954&grant_type=password&client_id=my-client&client_secret=my-secret&username=test%40seznam.cz&password=Peter&_=1562175129955” был заблокирован из-за несоответствия типа MIME (« application / json ») (X-Content-Type-Options: nosniff).

Функция jQuery для получения access_token

function authenticateUser(email, password) {
    var body = {
        grant_type: 'password',
        client_id: 'my-client',
        client_secret: 'my-secret',
        username: "test@seznam.cz",
        password: "Peter"
    };


    $.ajax({
        url: 'http://localhost:8080/oauth/token',
        crossDomain: true,
        type: 'POST',
        dataType: 'jsonp',
        contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
        header: {"Access-Control-Allow-Origin": "*"},
        data: body,
        complete: function(result) {
            alert(result);
        },

        success: function(result) {
            alert(result + " OK!");
        },

        error: function(result) {
            alert(result + " CHYBA");
        },
    });
    return true;
}

1 Ответ

0 голосов
/ 03 июля 2019

Если файл javascript обслуживается тем же сервером, который выдает токены, то нет необходимости использовать полный URL в вашем коде jquery ajax (и нет необходимости указывать crossDomain = true).Также кажется, что ваш сервер ожидает тип контента json вместо кодированного URL

, используйте

        url: '/oauth/token',
        crossDomain: false,
...
        contentType: 'application/json; charset=UTF-8',

Чтобы сделать запрос


Редактировать

Попробуй так:

   $.post("/oauth/token",body,
  function(data, status) {
    alert("Data: " + data + "\nStatus: " + status);
  });

Надеюсь, это поможет

...