javascript - js回调函数报错Uncaught SyntaxError: Unexpected token :
PHP中文网
PHP中文网 2017-04-11 09:10:06
[JavaScript讨论组]

在用网易云音乐API查询歌曲信息时,可以成功,获取到歌曲id后想用同样的方法获取歌词,但是就报错了,script中的src在地址栏中可以直接返回json数据,但是通过回调函数打印,却报错。
相关js

// 搜索歌词
    var searchLyricBtn = document.getElementById('search-lyric-btn');
    searchLyricBtn.addEventListener('click', function () {
        var musicId = result.getAttribute('data-id');
        
        console.log(musicId);
        var url = "http://music.163.com/api/song/lyric";
        var data = {
            "id": musicId,
            "lv": -1,
            "kv": -1,
            "tv": -1,
            "callback": "jsonplyriccallback"
        }
        var buffer = [];
        for (var key in data) {
            buffer.push(key + '=' + encodeURIComponent(data[key]));
        }
        var fullpath = url + "?os=pc&" + buffer.join('&');
        CreateScript(fullpath);

    });
    function CreateScript (src) {
        var el = document.createElement('script');
        el.src = src;
        el.async = true;
        el.defer = true;
        document.body.appendChild(el);
    };
    // 歌词搜索回调
    function jsonplyriccallback (rs) {    
        console.log('回调成功');    
    };

对json和jsonp的回调格式不是很清楚。
测试id可以用287035 歌曲《遇见》的
测试src直接地址栏形式返回

成功的歌曲的src直接地址栏形式返回

貌似后面这个自动多了一个回调函数包装。
求大神解答~。

PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
PHP中文网

你要定义一个名为 jsonpmusiccallback 的回调函数

天蓬老师

我想问下这样做网易知道了会禁用么?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号