vue使用jsonp抓取qq音乐数据的方法


Posted in Javascript onJune 21, 2018

1、安装jsonp

npm install jsonp

2、创建jsonp.js文件,内容如下:

import originJSONP from 'jsonp'
/** * 封装jsonp
 * @param {*} url 原始的jsonp第一个参数是url,第二个参数是option,这里为了比较好写参数做了下封装
 * @param {obj} data 参数
 * @param {*} option jsonp的option
 */
export default function jsonp (url, data, option) {
 // 如果url没有?就加一个?拼接
 url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)
 return new Promise((resolve, reject) => {
  // 原始jsonp的三个参数,url、option、回调函数
  originJSONP(url, option, (err, data) => {
   // 类似node的设计,如果err是null,表示成功,data是后端返回的数据
   if (!err) {
    resolve(data)
   } else {
    reject(err)
   }
  })
 })
}
export function param (data) {
 let url = ''
 for (var k in data) {
  let value = data[k] !== undefined ? data[k] : ''
  url += '&' + k + '=' + encodeURIComponent(value)
 }
 return url ? url.substring(1) : ''
}

3、创建confiig.js文件,内容如下:

// 用于存放公共数据
export const commonParams = {
 g_tk: 5381,
 format: 'json',
 inCharset: 'utf - 8',
 outCharset: 'utf - 8',
 notice: 0
}
export const options = {
 param: 'jsonpCallback'
}
export const ERR_OK = 0

3、创建recommend.js文件,内容如下:

import jsonp from './jsonp'
import { commonParams, options } from './config'
export function getRecommend () {
 const url = 'https://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg'
 const data = Object.assign({}, commonParams, {
  platform: 'h5', uin: 0, needNewCode: 1
 })
 // 这里返回一个promise对象
 return jsonp(url, data, options)
}

4、在组件中使用,如musicHall.vue中

<script>
import {getRecommend} from '../api/recommend.js'
import {ERR_OK} from '../api/config.js'
export default {
 mounted () {
  //在created中也可
  this._getRecommend()
 },
 methods: {
  _getRecommend () {
   getRecommend().then((res) => {
    if (res.code === ERR_OK) {
     console.log(res.data.slider)
    }
   })
  }
 }
}
</script>

5、总结

  • Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)
  • Object.assign(target, source1, source2)
  • encodeURIComponent(URIstring)函数可把字符串作为 URI 组件进行编码。 URIstring 必需。一个字符串,含有 URI 组件或其他要编码的文本。
  • substring()方法用于提取字符串中介于两个指定下标之间的字符。
  • stringObject.substring(start,stop)包括 start 处的字符,但不包括 stop 处的字符。不接受负的参数。

总结

以上所述是小编给大家介绍的vue使用jsonp抓取qq音乐数据的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
服务器安全设置的几个注册表设置
Jul 28 Javascript
中文字符串截取的js函数代码
Apr 17 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
Jun 05 Javascript
jQuery实现跨域iframe接口方法调用
Mar 14 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
详解Jquery Easyui的验证扩展
Jan 09 Javascript
vue-cli webpack 引入swiper的操作方法
Sep 15 Javascript
vue以组件或者插件的形式实现throttle或者debounce
May 22 Javascript
vue-cli设置css不生效的解决方法
Feb 07 Javascript
vue实现登录拦截
Jun 29 Javascript
js实现省级联动(数据结构优化)
Jul 17 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
Aug 04 Javascript
Vue 获取数组键名的方法
Jun 21 #Javascript
Taro集成Redux快速上手的方法示例
Jun 21 #Javascript
vue2.0项目实现路由跳转的方法详解
Jun 21 #Javascript
JS实现快递单打印功能【推荐】
Jun 21 #Javascript
详解javascript中的babel到底是什么
Jun 21 #Javascript
webpack打包react项目的实现方法
Jun 21 #Javascript
Vue Router的懒加载路径的解决方法
Jun 21 #Javascript
You might like
PHP 高手之路(三)
2006/10/09 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
2013/06/24 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
php通过各种函数判断0和空
2020/07/04 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
2019/05/13 PHP
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
layui表格数据重载
2019/07/27 Javascript
python基础教程之五种数据类型详解
2017/01/12 Python
Python批量发送post请求的实现代码
2018/05/05 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
python实现桌面壁纸切换功能
2019/01/21 Python
eclipse创建python项目步骤详解
2019/05/10 Python
python set内置函数的具体使用
2019/07/02 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
STAY JAPAN台湾:预订日本民宿
2018/07/22 全球购物
教师年终个人自我评价
2013/10/04 职场文书
员工拾金不昧表扬信
2014/01/09 职场文书
业务员自荐信范文
2014/04/20 职场文书
幼儿园教师演讲稿
2014/05/06 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
先进个人推荐材料
2014/12/29 职场文书
公司慰问信范文
2015/03/23 职场文书
施工员岗位职责范本
2015/04/11 职场文书
出生证明范本
2015/06/15 职场文书
保外就医申请书范文
2015/08/06 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书