时间:2021-05-26
如何封装一个jsonp()
在下载的jsopn中,jsonp(url,options,callback)这个是原生jsonp方法中的参数;
引入下载的jsonp
import originJsonp from 'jsonp';
导出自己定义的jsonp函数
//这个jsonp函数是我们自己定义的,与上面的originJsonp不是同一个,originJsonp是一个可以直接引用的方法;她最
终返回一个Promise对象
在抓取的数据URL中常常会有参数传入,但是这些参数是对象格式,但是我们传入到originJsonp方法中的参数是拼接到url后面的,所以不能是对象的格式,这时就需要将对象格式的参数拼接到url后面组成新的URL
类似这样的一个url:(https://ponent()是将字符串转换成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抓取跨域数据的方法,希望对大家有所帮助!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
最近在项目中使用了VueCLI3.0版本,项目中需要设置反向代理解决跨域问题,下面记录一下设置过程。如何安装vue-cli3呢?首先,你要有一个nodejs环境
vue-cli3跨域配置:在vue-resource的数据请求中,一般我们会将请求方式GET/POST修改为jsonp的请求方式就可以实现跨域。但是对于只支持G
JavaScript初学,一点自己的理解,有不当之处请大家指正~JSONP:本地html文件要获取xxx网站(跨域)数据时使用的方法。跨域问题:外部服务器的数据
什么是跨域:1、域名不同2、域名相同端口不同js出于对安全考虑不支持跨域请求。我们可以使用JSONP解决跨域问题。一、JSONP是什么JSONP(JSONwit
本文实例讲述了Angular使用$http.jsonp发送跨站请求的方法。分享给大家供大家参考,具体如下:Angular中使用$http.jsonp发送跨站请求