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


Posted in Javascript onOctober 30, 2019

前言: 部分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的数据示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript效率调优经验
Jun 04 Javascript
createElement与createDocumentFragment的点点区别小结
Dec 19 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
Jun 18 Javascript
jQuery Mobile操作HTML5的常用函数总结
May 17 Javascript
Markdown+Bootstrap图片自适应属性详解
May 21 Javascript
任意Json转成无序列表的方法示例
Dec 09 Javascript
jquery PrintArea 实现票据的套打功能(代码)
Mar 17 Javascript
一步步教会你微信小程序的登录鉴权
Apr 09 Javascript
vue中锚点的三种方法
Jul 06 Javascript
vue如何进行动画的封装
Sep 26 Javascript
Vue多组件仓库开发与发布详解
Feb 28 Javascript
Vue 实现把表单form数据 转化成json格式的数据
Oct 29 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
Oct 30 #Javascript
基于JavaScript实现单例模式
Oct 30 #Javascript
vue解决使用$http获取数据时报错的问题
Oct 30 #Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
Oct 30 #Javascript
vue请求服务器数据后绑定不上的解决方法
Oct 30 #Javascript
vue中的mescroll搜索运用及各种填坑处理
Oct 30 #Javascript
vue解决花括号数据绑定不成功的问题
Oct 30 #Javascript
You might like
PHP伪静态页面函数附使用方法
2008/06/20 PHP
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
jQuery bind事件使用详解
2011/05/05 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
js 窗口抖动示例
2013/09/04 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
浅谈vue.js中v-for循环渲染
2017/07/26 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
Django中对数据查询结果进行排序的方法
2015/07/17 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
python学生信息管理系统实现代码
2019/12/17 Python
Python字符串的修改方法实例
2019/12/19 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
人力资源专业推荐信
2013/11/29 职场文书
珍惜水资源建议书
2014/03/12 职场文书
环保建议书400字
2014/05/14 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
作风整顿剖析材料
2014/09/30 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
爱心捐款活动总结
2015/05/09 职场文书
教师节校长致辞
2015/07/31 职场文书
《正比例》教学反思
2016/02/23 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python