利用jsonp实现跨域操作并做出超时处理

什么是jsonp

JSONP(JSON with Padding)是JSON的一种“使用模式”,是一种非官方跨域数据交互协议,可用于解决主流浏览器的跨域数据访问的问题。用 JSONP 抓到的资料并不是 JSON,而是任意的填充JSON数据的JavaScript。

为什么要使用jsonp

1.Ajax直接请求普通文件存在跨域无权限访问的问题
2.web页面上调用js文件时不受是否跨域的影响,凡是有src属性的标签,都具有跨域的能力
3.当前阶段如果想通过纯web端(ActiveX控件、服务端代理、属于未来的HTML5之Websocket等方式不算)跨域访问数据就只有一种可能,那就是在远程服务器上设法把数据装进js格式的文件里,供客户端调用和进一步处理
4.JSON可以简洁的描述复杂数据,还被js原生支持

如何使用jsonp

1.在客户端写好回调函数,并且将回调函数的名称连同其他需要的参数名拼接在域名后面,填入src
2.服务端接收到请求,将数据进行解析,并将JSON数据填入回调函数的参数列表中,返回给客户端
3.客户端收到服务端的响应,执行函数,执行完毕将script代码块清除
4.设置超时处理,如果script请求超时,那么将函数清除。

封装好的jsonp代码

function jsonp(url,params,callback,time){
    //构造一个函数到window上
    var body = document.body;
    var fnName = &
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值