微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XHR Level2使用jQuery进行文件上传

如何从jQuery Ajax访问原始XHR对象?
问题是,新的XMLHttpRequest Level 2规范提供了一个名为upload的XHR的子属性,但显然jQuery尚未拥有它.我想继续使用jQuery Ajax,但我不知道如何将新功能与当前的jQuery库合并.

解决方法

在新版本的JQuery中,原始xhr对象包含在jqXhr对象中,该对象没有对xhr的新上载属性的任何引用,并且在文档中也不是很清楚如何执行它.
我发现这样做的方式,通过一些额外的设置来获得一个成功的jquery-ajax-HTML5文件上传器:
var formData = new FormData($('#myForm')[0]);
$.ajax({
    url: 'upload.PHP',type: 'POST',xhr: function() {
        myXhr = $.ajaxSettings.xhr();
        if(myXhr.upload){
            myXhr.upload.addEventListener('progress',progressHandlerFunction,false);
        }
        return myXhr;
    },data: formData,cache: false,contentType: false,processData: false
});

使用$.ajaxSettings.xhr()我得到了原始的xhr,然后我测试它是否有属性上传来绑定进度事件来控制进度(HTML5?)栏.其他设置允许我通过jquery ajax将表单作为FormData对象发送.

原文地址:https://www.jb51.cc/jquery/181546.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐