在CHROME控制台上已经用JS代码获得了ISBN的情况下, 如何通过豆瓣的API获取图书的评分?
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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询