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 相关文章推荐
Prototype使用指南之array.js
Jan 10 Javascript
高亮显示web页表格行的javascript代码
Nov 19 Javascript
JS中的public和private对象,即static修饰符
Jan 18 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
Jan 17 Javascript
js前台分页显示后端JAVA数据响应
Mar 18 Javascript
JS动态修改表格cellPadding和cellSpacing的方法
Mar 31 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
Apr 26 Javascript
jQuery常用知识点总结以及平时封装常用函数
Feb 23 Javascript
微信小程序使用第三方库Immutable.js实例详解
Sep 27 Javascript
详解Vue.js动态绑定class
Dec 20 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
Dec 29 Javascript
js如何找出字符串中的最长回文串
Jun 04 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删除数组中的特定元素的代码
2012/06/28 PHP
php商品对比功能代码分享
2015/09/24 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
js获取div高度的代码
2008/08/09 Javascript
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
自制简易打赏功能的实例
2017/09/02 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
理解Python中的With语句
2015/02/02 Python
介绍Python的Django框架中的QuerySets
2015/04/20 Python
Python检测生僻字的实现方法
2016/10/23 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
WINDOWS域的具体实现方式是什么
2014/02/20 面试题
会计学应届毕业生推荐信
2013/11/04 职场文书
应届大学生自荐信
2013/12/05 职场文书
微博营销计划书
2014/01/10 职场文书
运动会广播稿200字
2014/01/15 职场文书
公关活动策划方案
2014/05/25 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
关于springboot配置druid数据源不生效问题(踩坑记)
2021/09/25 Java/Android
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记