我希望使用 REST API 从 Yammer 获取单个线程及其注释。使用标准 ajax 调用来获取 json 结果会产生以下错误:
XMLHttpRequest cannot load https://www.yammer.com/api/v1/messages/in_group/1072435.json.
No 'Access-Control-Allow- Origin' header is present on the requested resource.
Origin 'http://localhost:52785' is therefore not allowed access.
为了允许跨域调用,我可以使用以下代码使用 jsonp 结果:
$.ajax({
type: 'GET',
url: "https://www.yammer.com/api/v1/messages/in_group/1072435.json",
dataType: "jsonp",
jsonp: false,
success: function(data) {
messages = data.messages;
//do stuff with messages
}
});
但是,我收到以下错误: Uncaught SyntaxError: Unexpected token :
这发生在解析 json 结果时——因为我使用的是 jsonp,所以我希望结果以 callFunction({json}) 的形式返回,但是我只是得到了 json。但是,如果我进入 Chrome 中的网络选项卡并调出请求,则请求本身是成功的,我可以查看正确分组的 json 结果(我可以展开消息属性并查看所有消息)。
看来我可以获取数据,但不能使用它。有什么办法可以防止这个错误,还是我从一开始就做错了?