JSONP封装

jsonP插件的服装var url = 'http://localhost:3000/data/swiper';

(function(root){
	jsonp = function(url,data,jsonpcallback,callback){
		var cbName = 'cb'+ jsonp.count;
		var fnName =  jsonpcallback + '=' + cbName;
		
		root[cbName] = function(res){
			
			callback(res);
		}
		var script = document.createElement('script');
		var data = tools.parse(data);
		
		url = tools.hasSearch(url,fnName);
		url = tools.hasSearch(url,data);
		script.src = url; 
		document.body.appendChild(script);
	}
	
	var tools = {
		parse : function(data){
			if(!data){return ''}
			if(typeof data == 'string'){
				return data;
			}
			var arr = [];
			for(var key in data){
				arr.push(encodeURIComponent(key)+'='+encodeURIComponent(data[key]));
			}
			return arr.join('&');
		},
		hasSearch : function(url,str){
			if(!str){return url};
			if(typeof str !== 'string'){return url}
			return url + (/\?/.test(url) ? '&' : '?') + str;
		}
		
		
	}
	
	jsonp.count = 0;
	root.jsonp = jsonp
})(window)

调用方式

     

var url = 'http://localhost:3000/data/swiper';
var data = {a:1};
jsonp(url,data,'callback',function(res){
	console.log(res);
});

  服务点node接口的实现

    let callback = req.query.callback;
	
	const sendData = {
		status: 0,
		msg: "",
		data: "",
	}
	
	if(imgNames) {
		sendData.status = 1;
		sendData.msg = "success";
		sendData.data = imgNames;
	}else {
		sendData.msg = "error";
	}
	let json = JSON.stringify(sendData);
  	res.send(callback + '(' + json + ')');

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值