我试图使用Disqus API获取评论信息并且我已经获得了检索数据,但是我在迭代它并获得很多麻烦抓住我想要的东西。我已经在浏览器中检索了如下所示的JSON数据:
/**/ jQueryRANDOMNUMBERSHERE({"code":0,"response":{"parent":null,"likes":0, "raw_message": "Lorem ipsum dolor sit amet, consectetur adipisicing elit"}});
我试图抓住" raw_message"但是我一直都会遇到无法读取属性的错误" raw_message"为null。当我尝试使用JSON.parse时,我收到"语法错误:意外的令牌o"
function showFeaturedComments() {
jQuery.ajax({
type: 'GET',
url: "https://disqus.com/api/3.0/posts/details.json",
data: { api_key: disqusPublicKey, post: idArray },
cache: false,
dataType: 'jsonp',
success: function(result) {
// var parseResults = JSON.parse(result);
// console.log(parseResults);
// var disqusResults = result.response;
// jQuery.each(result.response, function() {
// console.log(response.raw_message);
// });
// for (var i in result.response) {
// console.log(result.response[i].raw_message);
// }
}
});
}
答案 0 :(得分:0)
看起来调用返回一个对象,因此以下内容应该有效:
success: function(result) {
console.log(result.response.raw_message);
}
在对此类问题进行故障排除时,您应该在回调中设置断点,然后只查看结果变量包含的内容。
BTW,响应中的jQueryRANDOMNUMBERSHER(...)
是因为调用是作为JSONP请求调用的。
答案 1 :(得分:0)
确保你有这个
jsonp:“callback”和dataType:'jsonp',
jQuery.ajax({
type: 'GET',
url: "https://disqus.com/api/3.0/posts/details.json",
data: { api_key: disqusPublicKey, post: idArray },
cache: false,
dataType: 'jsonp',
jsonp: "callback",
success: function(result) {}
})
或者你应该只能把“?callback =?”在你的网址
“https://disqus.com/api/3.0/posts/details.json?callback=jQueryRANDOMNUMBERSHERE”
为了跨域安全原因,添加了jQueryRANDOMNUMBERSHERE。