jsonp的運(yùn)用(獲取qq音樂(lè)首頁(yè)數(shù)據(jù))以及用Promise的封裝

什么是jsonp呢只嚣?

首先沮稚,因?yàn)閍jax無(wú)法跨域,然后開(kāi)發(fā)者就有所思考
其次册舞,開(kāi)發(fā)者發(fā)現(xiàn)蕴掏, <script>標(biāo)簽的src屬性是可以跨域的
把跨域服務(wù)器寫成 調(diào)用本地的函數(shù) ,回調(diào)數(shù)據(jù)回來(lái)不就好了调鲸?
json剛好被js支持(object)
調(diào)用跨域服務(wù)器上動(dòng)態(tài)生成的js格式文件(不管是什么類型的地址盛杰,最終生成的返回值都是一段js代碼)
這種獲取遠(yuǎn)程數(shù)據(jù)的方式看起來(lái)非常像ajax,但其實(shí)并不一樣
便于客戶端使用數(shù)據(jù)藐石,逐漸形成了一種非正式傳輸協(xié)議即供,人們把它稱作JSONP。
傳遞一個(gè)callback參數(shù)給跨域服務(wù)端于微,然后跨域服務(wù)端返回?cái)?shù)據(jù)時(shí)會(huì)將這個(gè)callback參數(shù)作為函數(shù)名來(lái)包裹住json數(shù)據(jù)即可逗嫡。

具體的可以看一下這個(gè)鏈接 https://github.com/webmodules/jsonp

Installation
$ npm install jsonp

API
jsonp(url, opts, fn)  //具體的url是訪問(wèn)地址, opts是配置株依,  fn是回調(diào)

配置一般不寫祸穷, 而回調(diào)有兩個(gè)參數(shù)err, data 具體請(qǐng)看代碼(應(yīng)用場(chǎng)景vue)

import originJSONP from 'jsonp'
//封裝一個(gè)jsonp的常規(guī)方法,參數(shù)分別是 url地址勺三,data數(shù)據(jù)雷滚,option配置
export default function jsonp(url, data, option) {
    //利用下面的函數(shù)  生成原生`jsonp`想要的url
    //如果url末尾沒(méi)有 ? 就加上  如果有就加連接符&
    let url += ('?'.indexOf(url) < 0 ? '?' : '&') + prama(data)
    originJSONP(url, option, (err, data) => {    //返回一個(gè)promise對(duì)象封裝
        return new Promise((resolve, reject) => {
            if(!err) {
                resolve(data)
            }else {
                reject(err)
            }
        })
    })
}

//將data拼接到url里
function prama(data) {
    let url = ''
    for(let k in data) {
        //解決傳輸數(shù)據(jù)里有undefiend的問(wèn)題
        let value = data[k] !== undefined ? data[k] : '' 
        //拼接  注意value需要用這個(gè)函數(shù)解碼
        url += `&$(k)=$(encodeURIComponent(value))`
        return url ? url.subString(1) : ''  //去掉第一個(gè) “&”符號(hào)
    }
}

再來(lái)個(gè)上面的截圖

jsonp.js

接下來(lái), 我們假設(shè)訪問(wèn)的一個(gè)qq音樂(lè)的網(wǎng)站 想獲取它的數(shù)據(jù)
需要一下參數(shù)吗坚,把固定的寫到config.js里

config.js

再就可以將接口的方法寫在一個(gè)文件里

recommend.js

于是我們就可以在recommend.vue調(diào)用這個(gè)接口了

image.png

可以打印出qq音樂(lè)首頁(yè)的所有數(shù)據(jù)了祈远! 大功告成~

謝謝觀看~
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市商源,隨后出現(xiàn)的幾起案子车份,更是在濱河造成了極大的恐慌,老刑警劉巖牡彻,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扫沼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡庄吼,警方通過(guò)查閱死者的電腦和手機(jī)缎除,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)总寻,“玉大人器罐,你說(shuō)我怎么就攤上這事〗バ校” “怎么了轰坊?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵铸董,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我肴沫,道長(zhǎng)粟害,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任颤芬,我火速辦了婚禮我磁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘驻襟。我一直安慰自己夺艰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布沉衣。 她就那樣靜靜地躺著郁副,像睡著了一般。 火紅的嫁衣襯著肌膚如雪豌习。 梳的紋絲不亂的頭發(fā)上存谎,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音肥隆,去河邊找鬼既荚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛栋艳,可吹牛的內(nèi)容都是我干的恰聘。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼吸占,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼晴叨!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起矾屯,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤兼蕊,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后件蚕,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體孙技,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年排作,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了牵啦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纽绍,死狀恐怖蕾久,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拌夏,我是刑警寧澤僧著,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站障簿,受9級(jí)特大地震影響盹愚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜站故,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一皆怕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧西篓,春花似錦愈腾、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至吮成,卻和暖如春橱乱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粱甫。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工泳叠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人茶宵。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓危纫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親乌庶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子叶摄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容