我已经设置了Tumblr帐户并注册了我的应用程序以对其进行身份验证。
Tumblr文档:http://www.tumblr.com/docs/en/api/v2
我理解API输出JSON如下:
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": {
"title": "David's Log",
"posts": 3456,
"name": "david",
"url": "http:\/\/david.tumblr.com\/",
"updated": 1308953007,
"description": "<p><strong>Mr. Karp<\/strong> is tall and skinny, with
unflinching blue eyes a mop of brown hair.\r\n
"ask": true,
"ask_anon": false,
"likes": 12345
}
}
}
很好,但文档到此结束。我不知道如何获取此信息并将其显示在我的网站上。
我认为你会得到它的方式如下:
$.ajax({
url: "http://api.tumblr.com/v2/blog/myblog.tumblr.com/info?api-key=myapikey",
dataType: 'jsonp',
success: function(results){
console.log(results);
}
});
但这没有任何作用。
任何人都可以帮助我吗?感谢
答案 0 :(得分:8)
results
现在是可用于引用JSON结构的对象。当您控制结果对象时,它应该出现在Javascript开发者控制台中,您可以在其中浏览对象树。
因此,当您的成功回调收到回复时,您应该可以使用以下内容:
results.meta.status
=&gt; 200
results.meta.msg
=&gt; “OK”
results.response.title
=&gt; “大卫的日志”
results.response.posts
=&gt; 3456
results.response.name
=&gt; “大卫”
results.response.url
=&gt; “http://david.tumblr.com/”
results.response.updated
=&gt; 1308953007
results.response.description
=&gt; “<p><strong>Mr. Karp</strong>..
”
results.response.ask
=&gt;真
results.response.ask_anon
=&gt;假
results.response.likes
=&gt; 12345
如果您确实希望看到写入页面的内容,则需要使用修改DOM的函数,例如document.write,或者,因为您使用的是Jquery,$(“#myDivId”)。html (results.response.title);
试试这个:
<div id="myDivId"></div>
,然后$("#myDivId").html(results.response.title);
$.ajax({
url: "http://api.tumblr.com/v2/blog/myblog.tumblr.com/info?api_key=myapikey",
dataType: 'jsonp',
success: function(results){
// Logs to your javascript console.
console.log(results);
// writes the title to a div with the Id "myDivId" (ie. <div id="myDivId"></div>)
$("#myDivId").html(results.response.title);
}
});
答案 1 :(得分:1)
在问题代码中,请求类型未被设置,并且被tumblr拒绝。 jsonp错误响应是打印出来的。下面的代码正确地生成了jsonp请求。
关键是指定类型和dataType。祝你好运快乐的黑客。 ; - )
$.ajax({
type:'GET',
url: "http://api.tumblr.com/v2/blog/jdavidnet.tumblr.com/info",
dataType:'jsonp',
data: {
api_key : "myapikey"
},
success:function(response){
console.log(response, arguments);
}
});
答案 2 :(得分:0)
将对象写入屏幕的一种方法是将包含其JSON表示的元素添加到页面中:
$.ajax({
url: "http://api.tumblr.com/v2/blog/myblog.tumblr.com/info?api-key=myapikey",
dataType: 'jsonp',
success: function(results){
$("body").append(
$("<pre/>").text(JSON.stringify(results, null, " "))
);
}
});