JavaScript之原生JSONP的封装函数

javascript原生JSONP的函数封装


为了解决跨域问题,程序猿们可真是绞尽脑汁,JSONP的核心点在我刚刚接触的时候感觉惊奇,关于跨域问题请看我的其他博客

JSONP的核心点就是通过标签的src属性不会产生跨域问题来解决请求资源的行为

function JsonP(options){
	let {url,data,success} = options;
	data = data || {};
	let str = '';
	for(let i in data){
		str += `${i}=${data[i]}&`;
	}
	let script = document.createElement('script');
	script.src = url + '?' + str;
	window[data[data.funName]] = function(resopnse){
		success(resopnse);
	}
}

通过在函数中对window对象设置一个全局的方法,用来接收后端返回的数据,该方法的名字和后端返回的函数名都是在函数的参数中规定好了的

并且前端需要发送函数名到后端,后端再将请求到的数据连同函数名拼接后返回到前端页面,就会在前端将语句解析成js代码,这样整个的JSONP的传递流程完成
JSONP方法固然巧妙,但是安全性较低,其次开发代价大,需要前后端的配合才能完成,个人不建议使用,比较麻烦

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值