Запрос Jquery Ajax к API oauth2 Asana

Я разрабатываю приложение Asana с использованием Ember.js, и у меня возникла проблема, когда мне нужно вызвать API. Вход/регистрация oauth2 отлично работает, и я получаю рабочий токен (проверено с помощью curl)

Я понимаю, что мне нужно использовать заголовок "Авторизация: носитель" для аутентификации с помощью API, и это также отлично работает с помощью curl.

Вот мой код:

$.ajax({
  url: 'https://app.asana.com/api/1.0/users/me',
  type: 'GET',
    dataType: "json",
  complete: function (resp) { console.log(resp) },
  error: function (jqXHR,  textStatus,  errorThrown) { console.log( textStatus )},
  beforeSend: function (xhr) { xhr.setRequestHeader("Authorization: Bearer", "my_access_token") }
});

Когда я выполняю этот код, я получаю следующую ошибку

Uncaught SyntaxError: Неожиданный токен: я: 1

ошибка синтаксического анализа

похоже, что Asana не отвечает правильно закодированным файлом JSON?

это ответ, который не может быть проанализирован (извините за плохо отформатированный JSON)

{"data":{"id":864403617524,"name":"Sylvain","email":"[email protected]","photo":{"image_21x21":"https://s3.amazonaws.com/profile_photos/864403617524.skysUHPuO07ZftDGJSjY_21x21.png","image_27x27":"https://s3.amazonaws.com/profile_photos/864403617524.skysUHPuO07ZftDGJSjY_27x27.png","image_36x36":"https://s3.amazonaws.com/profile_photos/864403617524.skysUHPuO07ZftDGJSjY_36x36.png","image_60x60":"https://s3.amazonaws.com/profile_photos/864403617524.skysUHPuO07ZftDGJSjY_60x60.png","image_128x128":"https://s3.amazonaws.com/profile_photos/864403617524.skysUHPuO07ZftDGJSjY_huge.jpeg"},"workspaces":[{"id":498346170860,"name":"Personal Projects"},{"id":3958612780941,"name":"insideFPL"},{"id":5502245946578,"name":"Shipping Pixel"}]}}

Буду признателен за любую оказанную помощь.

Ваше здоровье,

S


person Syl    schedule 10.11.2013    source источник


Ответы (1)


Проблема, похоже, в том, что вы неправильно установили заголовок Authorization. Для меня работает следующее:

$.ajax(
  'https://app.asana.com/api/1.0/users/me',
  {
    type: 'GET',
    dataType: 'json',
    beforeSend: function (xhr) {
      xhr.setRequestHeader("Authorization", "Bearer $token")
    },
    complete: function (resp) {
      console.log(resp);
    },
    error: function (jqXHR,  textStatus,  errorThrown) {
      console.log(textStatus);
    }
  }
);

Bearer должно быть в начале второго параметра, и ни в одной строке не должно быть двоеточия.

person Adam Yeats    schedule 10.11.2013