jquery - XHR Level2 与 jQuery 用于文件上传

标签 jquery ajax html xmlhttprequest

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

最佳答案

在新版本的 JQuery 中,原始 xhr 对象被包装在 jqXhr 对象中,它没有任何对 xhr 的新上传属性的引用,并且在文档中也不是很清楚如何去做。 我发现这样做的方式,通过一些额外的设置来获得成功的 jquery-ajax-HTML5 文件 uploader 是:

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,然后我测试它是否具有属性上传来绑定(bind)进度事件以控制进度(HTML5?)栏。其他设置允许我通过 jquery ajax 将表单作为 FormData 对象发送。

关于jquery - XHR Level2 与 jQuery 用于文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8437544/

相关文章:

javascript - 将 var 设置为单击的按钮值并使用 var

javascript - html native 下拉菜单 - 在输入单击时打开菜单项

javascript - 带 onclick 的 INPUT 类型图像不适用于 JS

javascript - 使用 Phonegap、ajax 和 php 构建应用程序

javascript - 单击同一页面中的 <a> 时移动到 <section>

javascript - 删除表行有效

javascript - 无法在 jQuery mobile 中选择具有特定值的选项

javascript - CORS 在 http 服务器上失败

javascript - 指定的值 "undefined"不是有效数字

javascript - 使用 Javascript 从 <li> 列表更新 HTML 输入字段值