调用Deezer API获取指定艺人专辑信息失败 两种实现均异常求助
问题原因及解决方法
1. SDK调用报错问题
报错document.getElementById(...) is null是因为Deezer JS SDK要求页面中必须存在id为dz-root的DOM节点作为SDK的挂载容器,你当前页面没有添加该节点,导致SDK初始化时查找节点失败。
同时你需要等SDK完成初始化后再调用DZ.api接口,不能在引入SDK后立即调用,正确示例代码:
<!-- 必须先添加dz-root节点 --> <div id="dz-root"></div> <script src="https://e-cdns-files.dzcdn.net/js/min/dz.js"></script> <script> // 监听SDK初始化完成事件 DZ.ready(function() { DZ.api("/artist/15030/albums", function(response) { console.log(response); }); }); </script>
2. JSONP请求不触发问题
你给JSONP的script标签设置了type="application/json",浏览器不会把该标签识别为可执行的脚本,因此不会发起src对应的资源请求,自然不会触发回调。
去掉type属性即可,正确示例代码:
<script> window.populateDiscography = function(response) { console.log(response); } </script> <!-- 去掉type属性,默认按照javascript处理 --> <script src="https://api.deezer.com/artist/15030/albums?callback=window.populateDiscography"></script>
3. 接口认证问题
你调用的艺人专辑查询接口属于Deezer公开数据接口,不需要身份认证,无需传入access_token即可正常调用获取数据。
内容的提问来源于stack exchange,提问作者William Banks
相关产品推荐
相关产品推荐

