IE jquery异步文件上传请求待处理

sun*_*der 6 jquery html5 internet-explorer xmlhttprequest jquery-file-upload

我创建了一个带有进度条的新的多拖放文件上传控件.它适用于所有浏览器,除了IE 10及更高版本的问题.

当我在IE中上传文件时,大多数时候jquery异步请求都无法完成.它显示待定.我可以看到它在IE网络调试器窗口中待定.但在所有其他浏览器中它运行良好.我无能为力这里有什么不妥.最初我认为它可能与缓存有关.但在服务器响应中添加以下参数后.它仍然处于待定状态

context.Response.AppendHeader("Cache-Control", "no-cache"); // HTTP 1.1
context.Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.1 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 在此输入图像描述 在此输入图像描述

for (var i = 0; i < files.length; i++) {
        var data = new FormData();
        data.append(files[i].name, files[i]);
        uploadFile(handlerurl, data);
    }
function uploadFile(handlerurl, formData) {
                var jqXHR = $.ajax({
                    type: 'POST',
                    url: handlerurl,
                    contentType: false,
                    processData: false,
                    async: true,
                    cache: false,
                    data: formData,                         
                    xhr: function () {   },
                    success: function (result, status, xhr) {   },
                    error: function (xhr, status, error) {   }
          });
}
Run Code Online (Sandbox Code Playgroud)

我在每个文件中调用此函数.我不确定IE有什么问题.

编辑:调试后,发现服务器断点将命中.但是context.Request.Files中没有文件.没有文件从jquery/AJAX发送.您可以通过反复上传同一文件来重现此问题.

Vij*_*jay 0

您是否尝试为 handlerUrl 传递绝对 URL?

如果您的代码是在独立的 js 文件中编写的,则绝对 URL 会有所帮助;如果代码是在 html 上编写的,则传递正确的相对 URL 会有所帮助。