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

yizhihongxing

下面是详细讲解vue使用jsonp抓取qq音乐数据的方法的完整攻略。

步骤一:了解JSONP原理

JSONP是一种数据传输方式,它的原理是利用html的script标签没有跨域限制这一特性,在同一个页面中,通过向服务器请求一个jsonp类型的文件,服务器解析后返回数据,并在返回数据中添加一个函数调用语句,浏览器接收到响应文件后自动执行函数,从而实现了跨域访问数据,也就是实现了跨域JSON数据的传输。

步骤二:安装jsonp库

我们需要安装jsonp库来帮助我们实现JSONP请求,这里使用npm方式安装:

npm install jsonp --save

步骤三:使用jsonp库

在vue项目中,我们需要在组件的mounted(或created)钩子函数中发起JSONP请求,并在回调函数中处理返回的数据。下面提供两个示例:

示例一:获取QQ音乐热门歌单

import jsonp from 'jsonp'

export default {
  name: 'HotSongList',
  data () {
    return {
      hotSongList: [] //存储热门歌单的数组
    }
  },
  mounted () {
    const url = 'https://u.y.qq.com/cgi-bin/musics.fcg?-=getUCGI1869823758272879&g_tk=5381&jsonpCallback=getUCGI1869823758272879&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8¬ice=0&platform=yqq.json&needNewCode=0&data=%7B%22category%22%3A%22playlist%22%2C%22sort%22%3A%220%22%2C%22sin%22%3A%220%22%2C%22ein%22%3A%220%22%7D'
    jsonp(url, {param: 'jsonpCallback'}, (err, data) => {
      if (err) {
        console.error(err)
      } else {
        this.handleData(data)
      }
    })
  },
  methods: {
    handleData (data) {
      this.hotSongList = data.data.list
    }
  }
}

示例二:获取QQ音乐歌曲信息

import jsonp from 'jsonp'

export default {
  name: 'SongInfo',
  data () {
    return {
      songInfo: {} //存储歌曲信息的对象
    }
  },
  mounted () {
    const url = 'https://c.y.qq.com/v8/fcg-bin/fcg_play_single_song.fcg?format=jsonp&songid=109739124&platform=yqq.json&jsonpCallback=SongInfoCallback&loginUin=0&hostUin=0&needNewCode=0'
    jsonp(url, {name: 'SongInfoCallback'}, (err, data) => {
      if (err) {
        console.error(err)
      } else {
        this.handleData(data)
      }
    })
  },
  methods: {
    handleData (data) {
      this.songInfo = data.data[0]
    }
  }
}

以上就是使用Vue实现JSONP抓取QQ音乐数据的方法,可以根据实际需求来进行相应的配置和调整。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue使用jsonp抓取qq音乐数据的方法 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • NodeJS远程代码执行

    NodeJS远程代码执行是指攻击者通过网络将恶意代码传递到目标服务器上,并执行该代码。这种攻击方式往往能够导致服务器系统的完全崩溃或者数据泄露等严重后果,因此需要我们注意和提高防御能力。 下面是远程代码执行的攻击途径和防御措施: 攻击途径 由于网络协议漏洞或脆弱性的存在 通过注入不受信任或者非法内容到网络请求中 通过渗透 web 程序环境中的代码脆弱性,绕过…

    node js 2023年6月8日
    00
  • Node登录权限验证token验证实现的方法示例

    Node登录权限验证token验证是一种常用的用户认证方式。下面是实现这种验证的方法示例: 1. 生成Token 在编写代码之前,需要首先使用node.js的jsonwebtoken模块生成一个Token字符串。示例代码如下: const jwt = require(‘jsonwebtoken’); // 生成Token的函数 function genera…

    node js 2023年6月8日
    00
  • Node.js实现下载文件的两种实用方式

    我来详细讲解“Node.js实现下载文件的两种实用方式”的完整攻略。 1. 使用Node.js自带的http、https模块进行文件下载 在Node.js中,我们可以使用原生的http、https模块来实现文件下载功能,具体步骤如下: 1.1 加载http、https模块 const http = require(‘http’); const https =…

    node js 2023年6月8日
    00
  • nodejs aes 加解密实例

    下面是关于“nodejs aes 加解密实例”的完整攻略。 前言 AES(Advanced Encryption Standard,高级加密标准)是一种可在各种设备上使用的加密算法。在本文中,我们将介绍如何在nodejs中使用AES加解密算法进行数据的加密和解密。 使用crypto模块进行加解密 nodejs中的crypto模块提供了一种简单的方式来加密和解…

    node js 2023年6月8日
    00
  • Docker实践–部署Nodejs应用

    我来讲解一下“Docker实践–部署Nodejs应用”的完整攻略。 一、背景简介 Docker是一种容器化技术,与虚拟机不同,它可以更好的利用系统资源,同时也具备更快的启动速度、更小的体积、更方便的迁移等优势。 Nodejs是一种非常流行的Javascript服务器端开发框架,同样也可以运用Docker技术来进行容器化部署。 二、Docker部署Nodej…

    node js 2023年6月8日
    00
  • Node.js 制作实时多人游戏框架

    Node.js是一款基于V8引擎的JavaScript运行环境,Node.js的出现极大地推动了JavaScript在后端开发领域的普及和应用。下面,我将使用Markdown格式为大家讲解如何使用Node.js制作实时多人游戏框架。 环境搭建 首先,我们需要_node.js_的安装环境。这里以Mac OS X系统为例进行安装。在终端中输入以下命令进行安装: …

    node js 2023年6月8日
    00
  • Nodejs进阶之服务端字符编解码和乱码处理

    Nodejs进阶之服务端字符编解码和乱码处理 字符编解码 在服务端处理字符编解码时,需要注意以下几个方面: 请求头中的字符编码 浏览器发送请求时,会将当前页面的字符编码信息放在请求头中,服务端在解析请求时需注意此处的字符编码信息。 示例代码: const http = require(‘http’); const server = http.createSe…

    node js 2023年6月8日
    00
  • Node.js API详解之 vm模块用法实例分析

    Node.js API详解之 vm模块用法实例分析 1. vm模块是什么? vm模块是Node.js中内置的一个模块,提供了一种可以编译并且运行JavaScript代码片段的机制。这个模块主要用于各种动态编译的需求,比如说在Node.js应用中运行外部传递进来的代码等。 2. vm模块的方法 vm模块提供了下面几个方法: vm.createContext([…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部