Vue项目中使用jsonp抓取跨域数据的方法
网络编程 2021-07-04 15:02www.168986.cn编程入门
这篇文章主要介绍了Vue项目中使用jsonp抓取跨域数据的方法,本文通过实例代码讲解的非常详细,需要的朋友可以参考下
- 下载jsonp npm install jsonp
- 在js文件夹下新增一个jsonp.js,来封装一个jsonp()
如何封装一个jsonp()
在下载的jsopn中,jsonp(url,options,callback)这个是原生jsonp方法中的参数;
引入下载的jsonp
import originJsonp from 'jsonp';
导出自己定义的jsonp函数
//这个jsonp函数是我们自己定义的,与上面的originJsonp不是同一个,originJsonp是一个可以直接引用的方法;她最
终返回一个Promise对象
export default function jsonp(url, data, option){ return new Promise((resolve,reject)=>{ //调用originJsonp()来抓取数据 originJsonp(url,option,(err,data)=>{ //callback是抓取数据结果 if(!err){ resolve(data) }ese{ reject(err) } }) }) }
在抓取的数据URL中常常会有参数传入,这些参数是对象格式,我们传入到originJsonp方法中的参数是拼接到url后面的,所以不能是对象的格式,这时就需要将对象格式的参数拼接到url后面组成新的URL
类似这样的一个url( ... ;
这里参数data{
ie:utf-8, rsv_bp:1 } export function param(data){ let urlData=''; for(let key in data){ let value = data[k] !== undefined ? data[k] : '' ;//用来判断data是不是空 //将data拼接起来 if(vaule){ urlData += ·'&'${k}=${encodeURIComponent(value)}·;//encodeURIComponent将进行网址的拼接 (encodeURIComponent()是将字符串转换成url地址 } } return urlData ? urlData.substring(1):''; //url.substring(1)的原因是,有可能这个url后面接的参数用的是'?‘;我们只需要将参数用‘&'连接起来,不用管URL后面紧接的那个符号【是?还是&】 }
将函数param引用到函数jsonp中
export default function jsonp(url, data, option) { return new Promise((resolve,reject)=>{ //调用跨域请求函数 //对URL进行拼接,首页需要判断URL后面是否有“?”,如果有这需要给param(data)添加“&”,不然需要给param(data)添加“?” url = url.indexOf('?')<0 ? '?':'&' + param(data); originJsonp(url,option,(err,data)=>{ //这里的url就是完整的请求地址,需要包括参数 if(!err){ resolve(data) //请求成功 }else{ reject(err) //失败 } }) }) }
以上所述是长沙网络推广给大家介绍的Vue项目中使用jsonp抓取跨域数据的方法,希望对大家有所帮助!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程