当前位置: 首页 > 编程笔记 >

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

於彬
2023-03-14
本文向大家介绍vue使用jsonp抓取qq音乐数据的方法,包括了vue使用jsonp抓取qq音乐数据的方法的使用技巧和注意事项,需要的朋友参考一下

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音乐数据的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 压力最大的一集,面了一个半小时,写了四道题,以为挂了,过了一会看状态直接复试了 说说你对于链表这种数据结构的理解 react fiber中是怎么实现的 链表和数组的区别,优势是什么 深浅拷贝、堆栈,js数据类型,如何实现深浅拷贝 手写深拷贝 字符串为什么能调用某些方法,原理是什么(这里扯到了字符对象和原型链) 一道输出题(考查作用域) 手写事件冒泡和事件捕获阶段的一个点击事件弹窗 事件捕获和事件冒

  • 本文向大家介绍vue2.x 通过后端接口代理,获取qq音乐api的数据示例,包括了vue2.x 通过后端接口代理,获取qq音乐api的数据示例的使用技巧和注意事项,需要的朋友参考一下 前言: 部分qq音乐的api接口不能直接通过jsonp访问,需要通过官方的代理才能获取,如:歌词,推荐歌单等 1. webpack.dev.conf.js中创建接口: 2. api的js文件中,将url换成步骤1中自

  • 本文向大家介绍vue中jsonp插件的使用方法示例,包括了vue中jsonp插件的使用方法示例的使用技巧和注意事项,需要的朋友参考一下 通过jsonp简单获取接口数据,对了,注意下jsonp方法会自动添加callback 总结 到此这篇关于vue中jsonp插件的使用的文章就介绍到这了,更多相关vue中jsonp插件使用内容请搜索呐喊教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持呐喊教

  • 拷打项目 图片懒加载实现 ES6了解吗 promise(作用,API) ESm和cjs区别(ESM导出的变量是常量,cjs是变量) webpack和vite(只会用vite) https和http区别(TSL握手流程?) 浏览器弹出安全警告原因?(网站使用了HTTP而不是HTTPS,或者证书过期) 跨域是什么,怎么解决 XSS和CSRF攻击和防御 算法:快排#软件开发笔面经#

  • 问题内容: 我在下面的这段代码中遇到了问题,该代码几乎逐字从Firebase SDK Java文档复制而来。我是真正的语言(例如Java)的新手,它来自PHP和JavaScript的webdev背景。 基本上,addListenerForSingleValueEvent不会触发以向我返回数据。我注意到这是因为系统打印输出不会触发,因此我认为监听事件没有触发。 我怀疑这与我有限的知识有关,函数本身是