jq中的ajax都会创建一个xhr,可以使用xhrFields将进度功能添加到jQuery.ajax()中吗?...

简答:

不,你不能使用xhrFields做你想要的。

长答案:

XmlHttpRequest对象中有两个进度事件:

>响应进度(XmlHttpRequest.onprogress)

这是当浏览器从服务器下载数据时。

>请求进度(XmlHttpRequest.upload.onprogress)

这是当浏览器将数据发送到服务器时(包括POST参数,Cookie和文件)

在您的代码中,您正在使用响应进度事件,但您需要的是请求进度事件。这是你如何做的:

$.ajax({

async: true,success: function(xml){

// Do stuff with the returned xml

},xhr: function(){

// get the native XmlHttpRequest object

var xhr = $.ajaxSettings.xhr() ;

// set the onprogress event handler

xhr.upload.onprogress = function(evt){ console.log('progress',evt.loaded/evt.total*100) } ;

// set the onload event handler

xhr.upload.onload = function(){ console.log('DONE!') } ;

// return the customized object

return xhr ;

}

});

xhr选项参数必须是返回一个本机XmlHttpRequest对象以供jQuery使用的函数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值