Javascript通过豆瓣api实现获取图书的信息(通过图书的isbn号)要如何实现?
第一张图是豆瓣官方的给的api,name的属性写成9787115299710,希望可以获取图书的title,,以下是json的格式...
第一张图是豆瓣官方的给的api,name的属性写成9787115299710,希望可以获取图书的title,,以下是json的格式
展开
2个回答
展开全部
这个。。 提供的数据应该是需要使用 JSON来请求吧。
虽然 jq 有jsonp,但是一直没有成功使用过。。 所以自己写了一个简单的。
var jsonp = function (url, callback) {
if (typeof url=== 'undefined') {
throw 'the 1st param "url" missing';
}
if (typeof callback === 'undefined') {
throw 'the 2nd param "callback" missing';
}
var jsonpcallback = 'callback' + new Date().valueOf();
if (typeof callback !== 'string') {
window[jsonpcallback] = callback;
callback = jsonpcallback;
} else {
window[jsonpcallback] = function (data) {
eval(callback).call(window, data);
}
}
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', url + (url.indexOf('?') == -1 ? '?' : '&') + 'callback=' + jsonpcallback);
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
};
然后,你在页面中这样调用:
jsonp('https://api.douban.com/v2/book/isbn/9787115299710', function (data){
var title = data.title;
// 你自己的数据处理 可以通过 for..in 的结构来遍历data的属性。
});
还是补充一下吧,这样可以取到返回的所有数据(<ul><li>结构</li>....</ul>),在上面的回调里面调用这个函数:
function getObjectData(data){
var f_this = arguments.callee;
var $ul = $('<ul>');
for(var item in data){
var row = data[item];
var $li = $('<li>');
if(!$.isPlainObject(row) && !$.isArray(row)){
$li.append(item + ':' + row);
}else{
$li.append(item).append(f_this(row));
}
$ul.append($li);
}
return $ul;
}
展开全部
//引用jQuery
$.ajax({
url:"http://api.douban.com/v2/book/isbn/9787115299710",
dataType:'jsonp',
success:function( data ){
console.log( 'title:', data.title );
}
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询