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 相关文章推荐
JavaScipt基本教程之前言
Jan 16 Javascript
javascript数字格式化通用类 accounting.js使用
Aug 24 Javascript
UpdatePanel和Jquery冲突的解决方法
Apr 01 Javascript
js冒泡法和数组转换成字符串示例代码
Aug 14 Javascript
js校验表单后提交表单的三种方法总结
Feb 28 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
Oct 20 Javascript
jQuery中parents()方法用法实例
Jan 07 Javascript
JavaScript入门教程之引用类型
May 04 Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 Javascript
JQuery实现定时刷新功能代码
May 09 jQuery
微信小程序商品详情页底部弹出框
Nov 22 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
Jan 13 Vue.js
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
espresso double下 咖啡粉超细时 饼压力对咖啡的影响
2021/03/03 冲泡冲煮
PHP中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
基于jQuery实现点击同时更改两个iframe的网址
2010/07/01 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
2017/03/10 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
[01:11:37]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第一场 11.19
2020/11/19 DOTA
python基础教程之Filter使用方法
2017/01/17 Python
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
Django 1.10以上版本 url 配置注意事项详解
2019/08/05 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
python 获取计算机的网卡信息
2021/02/18 Python
团支书竞选演讲稿
2014/04/28 职场文书
酒店开业策划方案
2014/06/02 职场文书
中国梦口号
2014/06/13 职场文书
岗位安全生产责任书
2014/07/28 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
签约仪式致辞
2015/07/30 职场文书
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python