ajax获取qq音乐源码,jsonp的运用(获取qq音乐首页数据)以及用Promise的封装
什么是jsonp呢?
首先,因为ajax无法跨域,然后开发者就有所思考
其次,开发者发现, 标签的src属性是可以跨域的
把跨域服务器写成 调用本地的函数 ,回调数据回来不就好了?
json刚好被js支持(object)
调用跨域服务器上动态生成的js格式文件(不管是什么类型的地址,最终生成的返回值都是一段js代码)
这种获取远程数据的方式看起来非常像ajax,但其实并不一样
便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP。
传递一个callback参数给跨域服务端,然后跨域服务端返回数据时会将这个callback参数作为函数名来包裹住json数据即可。
Installation
$ npm install jsonp
API
jsonp(url, opts, fn) //具体的url是访问地址, opts是配置, fn是回调
配置一般不写, 而回调有两个参数err, data 具体请看代码(应用场景vue)
import originJSONP from 'jsonp'
//封装一个jsonp的常规方法,参数分别是 url地址,data数据,option配置
export default function jsonp(url, data, option) {
//利用下面的函数 生成原生`jsonp`想要的url
//如果url末尾没有 ? 就加上 如果有就加连接符&
let url += ('?'.indexOf(url) < 0 ? '?' : '&') + prama(data)
originJSONP(url, option, (err, data) => { //返回一个promise对象封装
return new Promise((resolve, reject) => {
if(!err) {
resolve(data)
}else {
reject(err)
}
})
})
}
//将data拼接到url里
function prama(data) {
let url = ''
for(let k in data) {
//解决传输数据里有undefiend的问题
let value = data[k] !== undefined ? data[k] : ''
//拼接 注意value需要用这个函数解码
url += `&$(k)=$(encodeURIComponent(value))`
return url ? url.subString(1) : '' //去掉第一个 “&”符号
}
}
再来个上面的截图
jsonp.js
接下来, 我们假设访问的一个qq音乐的网站 想获取它的数据
需要一下参数,把固定的写到config.js里
config.js
再就可以将接口的方法写在一个文件里
recommend.js
于是我们就可以在recommend.vue调用这个接口了
image.png
可以打印出qq音乐首页的所有数据了! 大功告成~
谢谢观看~
ajax获取qq音乐源码,jsonp的运用(获取qq音乐首页数据)以及用Promise的封装相关推荐
- qq秀源码 php,JavaScript_js实现仿QQ秀换装效果的方法,本文实例讲述了js实现仿QQ秀换 - phpStudy...
js实现仿QQ秀换装效果的方法 本文实例讲述了js实现仿QQ秀换装效果的方法.分享给大家供大家参考.具体实现方法如下: 仿QQ秀换装效果 #cs img{cursor:hand} var obj=ev ...
- 【脚本项目源码】Python制作多功能音乐播放器,打造专属你的音乐播放器
前言 本文给大家分享的是如何通过利用Python实现多功能音乐播放器,废话不多直接开整~ 开发工具 Python版本: 3.6 相关模块: os模块 sys模块 time模块 random模块 PyQ ...
- [AYUI]QQ管家源码已经开源
(0-50元 黑色字体 享受AY 1周的 ayui 技术问答) (50-100元 绿色字体 享受AY 15天的 ayui 技术问答) (100-150元 蓝色字体 享受AY 20天的 ayui ...
- 小程序代码反编译获取小程序源码nodejs
第一步,360软件管理里面搜雷电模拟器4,然后按装 第二步,打开后按顺序下载,微信(用来打开小程序来获取小程序源码的wxapkg文件),QQ(从本地电脑发RE管理器到模拟器中进行安装),在模拟器中安装 ...
- 在线获取百度BDUSS源码 支持5种登录方式
简介: 这个是模拟百度登录获取BDUSS的源码,更新总共5种获取方式,分别是普通登录.扫码登录.短信验证码登录和第三方登录(包括QQ登录和微信登录),可无视异地和登录保护. 网盘下载地址: http: ...
- PHP 通过fsockopen函数获取远程网页源码
最新PHP 通过fsockopen函数获取远程网页源码 以下是三零网为大家整理的最新PHP 通过fsockopen函数获取远程网页源码的文章,希望大家能够喜欢! 通过该函数可以获取指定端口的页面源码, ...
- aide怎么打开html文件,求助!aide获取网页html源码
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package com.mycompany.myapp; import android.app.*; import android.content.*; ...
- python 爬虫源代码-Python爬虫学习之获取指定网页源码
本文实例为大家分享了Python获取指定网页源码的具体代码,供大家参考,具体内容如下 1.任务简介 前段时间一直在学习Python基础知识,故未更新博客,近段时间学习了一些关于爬虫的知识,我会分为多篇 ...
- Delphi自动提交网页表单和获取框架网页源码
这两个问题的实现原理其实是差不多的,所以放在一起介绍,单元MSHtml封装了我们需要的功能. 首先,新建一个DELPHI工程,在USES部分添加MSHtml单元的引用. 然后,在窗体上放置一个TWeb ...
- linux eclipse 关联源码,获取Hadoop的源码和通过Eclipse关联Hadoop的源码
一.获取Hadoop的源码 首先通过官网下载hadoop-2.5.2-src.tar.gz的软件包,下载好之后解压发现出现了一些错误,无法解压缩, 因此有部分源码我们无法解压 ,因此在这里我讲述一下如 ...
最新文章
- windows SOCKET编程
- 操作系统与虚拟化安全第一次作业-关键习题
- 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能...
- 苏州飘“彩云” 五年规模破百亿元
- 【软件开发底层知识修炼】一 深入浅出处理器之一 微处理器与微控制器
- 我就是TMD很无聊的女生怎么样。
- python推荐系统设置_用Python构建你自己的推荐系统
- Ubuntu学习日记--Lesson2:创建、重命名、删除文件及文件夹,强制清空回收站方法
- LSI加入多核联盟参与编程与应用标准制定
- matlab plv,脑电脑网络分析代码使用流程介绍
- 应用系统开发--银行系统
- 企业正确导入BPM系统要注意什么
- 【MSP430F149】按键控制数码管实现电子表功能
- double和float区别
- 如何查看电脑CPU的核心个数
- Proteus 8 Source Code 字体设置问题 光标于选中的字不对应
- Jenkins的Windows10下载与安装
- Python的列表、元组、字典
- python ldap3 创建用户_基于python LDAP3的AD域账号注册系统
- 高效工具-Google云盘上传方案
热门文章
- 12、配置路由器的单臂路由(给VLAN配置网关地址)
- OpenGG.Clean.Player{喜歡看視頻用戶強推}
- 古罗马花园石头雕像喷泉原理
- 怎么用计算机算组合数c,排列组合c怎么算 公式是什么
- jquery——淡入淡出(fadein与fadeout)
- Win10镜像下载之后怎么安装系统
- 计算机二级职业生涯规划讲座心得,职业规划课心得体会2000字
- R语言中 attach()与detach(),及with()的使用
- 3993: [SDOI2015]星际战争
- win7计算机资源管理器卡住,简单几步解决win7资源管理器老是重启的问题