javascript - 用jsonp抓取qq音樂(lè)總是說(shuō)回調(diào)函數(shù)沒(méi)有定義
問(wèn)題描述
用jsonp抓取qq音樂(lè)總是說(shuō)回調(diào)函數(shù)沒(méi)有定義,
我的要實(shí)現(xiàn)時(shí)候的步驟1。第一步
我要實(shí)現(xiàn)的目的
問(wèn)題:如題
我的部分代碼:
import originJSONP from ’jsonp’export default function (url, data, option) { url += (url.indexOf(’?’) < 0 ? ’?’ : ’&’) + param(data) return new Promise((resolve, reject) => { originJSONP(url, option, (err, data) => { if (!err) {resolve(data) } else {reject(err) } }) })}// 將 data 拼接到 url 上function param(data) { let url = ’’ for (let i in data) { let value = data[i] !== undefined ? data[i] : ’’ url += `&${i}=${encodeURIComponent(value)}` } return url}// 熱門歌單詳情歌曲export function getHotSongList(disstid) { const url = ’https://c.y.qq.com/qzone/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg’ const data = Object.assign({}, commonParam, { type: 1, json: 1, utf8: 1, onlysong: 0, disstid, // jsonpCallback: ’playlistinfoCallback’, loginUin: 0, hostUin: 0, inCharset: ’utf8’, platform: ’yqq’, needNewCode: 0 }) return jsonp(url, data, options)}// this.disc.dissid我已經(jīng)正確獲取了,通過(guò)自己服務(wù)端代理,代碼太多就不貼了。 // TODO 報(bào)錯(cuò)ReferenceError: jp1() is not defined getHotSongList(this.disc.dissid).then((res) => { if (res.code === ERR_OK) { // 問(wèn)題 不能打印出來(lái)console.log(res.cdlist[0].songlist) } })
不知道為甚么,折騰一天了,還是沒(méi)解決,是QQ音樂(lè)的接口變了嗎,(前兩天同樣的代碼還能正常運(yùn)行的,昨天就不行了),希望有大神幫忙看看是怎么回事,先謝謝大家了。
補(bǔ)充回調(diào)函數(shù)的名稱里邊處理好了,對(duì)其他接口(歌曲圖片,歌手,都是用jsonp獲取沒(méi)有問(wèn)題),_jp1是一個(gè)默認(rèn)名稱而已。請(qǐng)求第二個(gè)它就變成_jp2,如此類推
處理的部分代碼
// 庫(kù)它自己定義的名字var prefix = opts.prefix || ’__jp’; // use the callback name that was passed if one was provided. // otherwise generate a unique name by incrementing our counter. var id = opts.name || (prefix + (count++));
該庫(kù)的地址:https://github.com/webmodules...
問(wèn)題解答
回答1:你有定義過(guò)jp1函數(shù)么?沒(méi)有的話是怎么成功的呢?建議看看jsonp的原理
相關(guān)文章:
1. javascript - JS設(shè)置Video視頻對(duì)象的currentTime時(shí)出現(xiàn)了問(wèn)題,IE,Edge,火狐,都可以設(shè)置,反而chrom卻...2. java固定鍵值轉(zhuǎn)換,使用枚舉實(shí)現(xiàn)字典?3. 如何為每個(gè)應(yīng)用程序配置tomcat 6的logs / catalina.out。(為sys.out,sys.err配置Web應(yīng)用程序特定的日志文件)4. css - ionic中的柵格布局如何讓文字內(nèi)容多少不同的每一列中的內(nèi)容都能垂直居中?5. php自學(xué)從哪里開(kāi)始?6. phpstady在win10上運(yùn)行7. java - 我設(shè)置了cookie的max age,但是cookie依然在關(guān)閉游覽器后消失了8. javascript - canvas設(shè)計(jì)鼠標(biāo)畫(huà)圖功能一筆畫(huà)出多條并行彩色線條9. 這是什么情況???10. javascript - 微信網(wǎng)頁(yè)開(kāi)發(fā)從菜單進(jìn)入頁(yè)面后,按返回鍵沒(méi)有關(guān)閉瀏覽器而是刷新當(dāng)前頁(yè)面,求解決?
