jsonp的使用——qq音乐为例

本文通过在Vue项目中实现jsonp的使用,详细介绍了如何安装、引入并自定义jsonp函数,以完成与音乐API的数据交互。代码示例来源于慕课网教程,适合初学者学习jsonp的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇中对jsonp的源码进行了分析,所以这篇文章是对jsonp的使用,加深对jsonp的理解。首次使用,如有错误,请告知。互相学习,互相借鉴。

因为我最近在看慕课网上的用vue实现音乐app的教程,所以这里我也会使用vue来实现。

安装jsonp

$ npm install jsonp

引入jsonp

import originJSONP from 'jsonp'

定义一个实现jsonp的函数

//jsonp.js
export default function jsonp(url, opts, fn) {
    url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)
    return new Promise ((resolve, reject) => {
        originJSONP(url, option, (data, err) => {  
            if(!err) {
                resolve(data)
            } else {
                reject(err)
            }
        })
    })
}

function param (data) {
    let url = ''
    for(let i in data){
        const value = data[i] !== undefinted ? data[i] : ''
        url += `&${i} = ${encodeURIComponent(value)} `
     }
    return url ? url.substring(1) : ''
}

//newJsonp.js
import jsonp from 'common/js/jsonp'
import {commonParams,options} from './config'
export default function newJsonp() {
    const url = 'https://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg'

    const data = Object.assign({}, commonParams, {
       platform: 'h5',
       uin: 0,
       needNewCode: 1
  }) 
    return jsonp(url, data, options)
}
//config.js
export const commonParams = {
  g_tk: 1928093487,
  inCharset: 'utf-8',
  outCharset: 'utf-8',
  notice: 0,
  format: 'jsonp'
}

export const options = {
   param: 'jsonpCallback'
}

代码全部来自教程之中,我只是自己重新码了一次,加深记忆的同时加深对jsonp的理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值