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 相关文章推荐
JQuery 插件制作实践 xMarquee插件V1.0
Apr 02 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
Nov 28 Javascript
用js通过url传参把数据从一个页面传到另一个页面
Sep 01 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
Nov 28 Javascript
用户代理字符串userAgent可实现的四个识别
Sep 20 Javascript
angularjs点击图片放大实现上传图片预览
Feb 24 Javascript
如何从零开始手写Koa2框架
Mar 22 Javascript
Vue使用watch监听一个对象中的属性的实现方法
May 10 Javascript
vue自动添加浏览器兼容前后缀操作
Aug 13 Javascript
在Vue里如何把网页的数据导出到Excel的方法
Sep 30 Javascript
uniapp电商小程序实现订单30分钟倒计时
Nov 01 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
Nov 05 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自动反斜杠的函数代码
2010/01/05 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
Firefox中autocomplete="off" 设置不起作用Bug的解决方法
2011/03/25 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
JavaScript之DOM_动力节点Java学院整理
2017/07/03 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
2019/01/10 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
Python 正则表达式(转义问题)
2014/12/15 Python
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
python队列Queue的详解
2019/05/10 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
幼儿如何来做好自我评价
2013/11/05 职场文书
自荐信要包含哪些内容
2013/11/06 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
白岩松演讲
2014/05/21 职场文书
护理自荐信
2019/05/14 职场文书
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android
Redis批量生成数据的实现
2022/06/05 Redis
win10此电脑打不开怎么办 win10双击此电脑无响应的解决办法
2022/07/23 数码科技