Yammer JavaScript SDK - “Access-Control-Allow-Origin”问题

时间:2014-06-05 07:47:53

标签: javascript ajax rest cors yammer

我正在尝试按照此处的说明制作Yammer API请求:https://developer.yammer.com/yammer-sdks/#javascript-sdk。当我运行这个例子时:

yam.getLoginStatus(
  function(response) {
    if (response.authResponse) {
      console.log("logged in");
      yam.platform.request({
        url: "https://www.yammer.com/api/v1/users.json",     //this is one of many REST endpoints that are available
        method: "GET",
        data: {    //use the data object literal to specify parameters, as documented in the REST API section of this developer site
          "letter": "a",
          "page": "2",
        },
        success: function (user) { //print message response information to the console
          alert("The request was successful.");
          console.dir(user);
        },
        error: function (user) {
          alert("There was an error with the request.");
        }
      });
    }
    else {
      alert("not logged in")
    }
  }
);

我在localhost上这样做,我收到了以下错误:

"XMLHttpRequest cannot load https://www.yammer.com/api/v1/users.json?letter=a&page=2&_=1401954073159. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access."

知道如何解决这个问题吗?

还有一件事。我无法在此指定其他标头,因为此调用是作为'OPTIONS'而不是'GET'请求方法执行的。

希望有人对Yammer最新的API有同样的问题,并且能够解决它。

由于

3 个答案:

答案 0 :(得分:3)

请务必更新您的Yammer应用程序JS Origins以匹配您正在测试的环境主机名。

您可以在此链接配置这些来源:

https://www.yammer.com/client_applications

点击您的应用程序,然后点击"基本信息"。

答案 1 :(得分:1)

使用主机名“api.yammer.com”代替“www.yammer.com”。我相信文档需要更新,我会更新。

或者,您可以使用yam.platform.request('users.json')代替yam.request('https://api.yammer.com/api/v1/users.json'),而不必使用主机名进行调整。

答案 2 :(得分:0)

将您的应用程序网址添加到yammer应用程序basicinfo中的“Javascript Origins”。