vue2.x 通过后端接口代理,获取qq音乐api的数据示例

前言: 部分qq音乐的api接口不能直接通过jsonp访问,需要通过官方的代理才能获取,如:歌词,推荐歌单等

1. webpack.dev.conf.js中创建接口:

// 开头调用:
var express = require(\'express\')
var axios = require(\'axios\')
var app = express()
var apiRoutes = express.Router()
app.use(\'/api\', apiRoutes)
 
 
// devServer的最后添加:
  before(app) {
   app.get(\'/api/getDiscList\', function (req, res) {
    var url = \'https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg\' // 原api
    axios.get(url, {
     headers: {
      referer: \'https://c.y.qq.com/\',
      host: \'c.y.qq.com\'
     },
     params: req.query
    }).then((response) => {
     res.json(response.data)
    }).catch((e) => {
     console.log(e)
    })
   })
  }

2. api的js文件中,将url换成步骤1中自定义的接口,通过axios获取返回数据

import jsonp from \'common/js/jsonp\'
import {commonParams, options} from \'./config\'
import axios from \'axios\'
 
 
export function getDiscList() {
 const url = \'/api/getDiscList\'
 
 
 const data = Object.assign({}, commonParams, {
  platform: \'yqq\', // 加引号
  hostUin: 0,
  sin: 0,
  ein: 29,
  sortId: 5,
  needNewCode: 0,
  categoryId: 10000000,
  rnd: Math.random(),
  format: \'json\'
 })
 
 
 return axios.get(url, {
  params: data
 }).then((res) => {
  return Promise.resolve(res.data)
 })
}

3. 组件中通过api的js文件中的方法获取数据

import {getDiscList} from \'api/recommend\'
 
 
_getDiscList() {
 getDiscList().then((res) => {
  if (res.code === ERR_OK) {
   console.log(\'推荐:\', res)
   this.discList = res.data.list
  } else {
   console.log(\'没,没有推荐\')
  }
 })
}

以上这篇vue2.x 通过后端接口代理,获取qq音乐api的数据示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容