当前位置: 首页 > 面试题库 >

XHR Level2和jQuery用于文件上传

裴嘉许
2023-03-14
问题内容

如何从jQuery Ajax访问原始XHR对象?事实是,新的XMLHttpRequest Level
2规范提供了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对象发送。



 类似资料:
  • 问题内容: 我希望在用户使用$ .ajax在输入文件中选择文件时异步上传文件。但是接收调用返回索引的PHP未定义。jQuery代码是下一个: 以及调用该调用的php: 谢谢 问题答案: 您无法使用AJAX上传文件,但可以使用,因此不必刷新当前页面。 很多人都对插件束手无策,但您可以轻松完成此操作,并具有AJAX请求的所有功能。 不必使用AJAX函数,而是将表单提交到具有事件处理程序的隐藏文件中,以

  • 问题内容: 我最近一直在尝试使用PHP,到目前为止一直很好,直到碰到一堵墙为止。这是我的一小段代码。它允许我上传单个文件,但是我想要的是能够上传多个文件。 这是PHP和HTML文件: 和PHP文件: 任何帮助将不胜感激。 问题答案: Index.html load.php

  • 问题内容: 看来我还没有清楚地传达出我的问题。我需要发送一个文件(使用AJAX),并且需要使用Nginx HttpUploadProgressModule 获取文件的上传进度。我需要一个很好的解决方案。我已经尝试过使用jquery.uploadprogress插件,但是我发现自己不得不重写其中的大部分内容,以使其在所有浏览器中都能正常工作并使用AJAX发送文件。 我所需要的只是执行此操作的代码,它

  • 问题内容: 诚然,Stack Overflow周围也存在类似的问题,但似乎没有一个完全符合我的要求。 这是我想要做的: 上载整个数据格式,其中一个是 单个 文件 使用Codeigniter的文件上传库 到这里为止,一切都很好。数据根据需要进入我的数据库。但我也想通过AJAX帖子提交表单: 使用原生HTML5 File API,而不是Flash或iframe解决方案 最好与低级jQuery方法接口

  • 问题内容: 我已经进行了很多搜索,以了解如何使用Ajax从表单上载文件,并发现xhr2应该可以做到。但是,我已经尝试过使用FormData对象,但它不起作用。 这是一个简单的html表单 这是“ post.php”文件,当以“老式”方式运行时,它可以正常工作: 这是“ upload.js” 您知道为什么它不起作用吗?控制台返回“未发送文件”。 非常感谢 ! 问题答案: 尝试替换代码: 有了这个:

  • 问题内容: 我正在尝试使用jQuery AJAX和通用处理程序上传图像文件。但是似乎文件没有被传递给处理程序。提交后始终为null:-/ 我究竟做错了什么? HTML: JS: ASHX: 问题答案: 设法使这个工作:) 这是我的代码…