Jquery Ajax请求Asana的oauth2 API

Syl*_*Syl 0 ajax jquery ember.js asana

我正在使用Ember.js开发Asana应用程序,当我需要调用API时,我遇到了一些问题.oauth2登录/注册工作正常,我收到一个工作令牌(使用curl测试)

我知道我需要使用"Authorization:Bearer"标头来使用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") }
});
Run Code Online (Sandbox Code Playgroud)

当我执行此代码时,我收到以下错误

未捕获的SyntaxError:意外的令牌:我:1

parsererror

它看起来像Asana没有回复正确编码的JSON文件?

这个无法解析的响应(抱歉格式不正确的JSON)

{"data":{"id":864403617524,"name":"Sylvain","email":"my@email.com","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"}]}}
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢.

干杯,

小号

Ada*_*ats 8

问题似乎是你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);
    }
  }
);
Run Code Online (Sandbox Code Playgroud)

Bearer 应该在第二个参数的开头,并且任何一个字符串中都不应该有冒号.