Javascript XMLHttpRequest的异步调用正在阻止Jquery ajax调用

Javascript XMLHttpRequest的异步调用正在阻止Jquery ajax调用,javascript,jquery,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc 4,我想创建一个异步模型,用户可以使用XMLHttpRequest对象上传文件,同时,如果用户导航到包含jQueryAjax调用的其他功能,那么用户就会被阻止 我不想在上传文件时被阻止 请参考以下代码 使用XMLHttpRequest上载文件 var formdata = new FormData(); formdata.append("keywords", this.element.find('#keywords1').val());

我想创建一个异步模型,用户可以使用XMLHttpRequest对象上传文件,同时,如果用户导航到包含jQueryAjax调用的其他功能,那么用户就会被阻止

我不想在上传文件时被阻止 请参考以下代码

  • 使用XMLHttpRequest上载文件

                var formdata = new FormData();
                formdata.append("keywords", this.element.find('#keywords1').val());
                var xhr = new XMLHttpRequest();
                // controller call
                xhr.open('POST', '../../Controller/function', true);
                xhr.onreadystatechange = function (event) {
                    if (xhr.readyState === 4) {
                        if (xhr.status === 200) {
    
                        } 
                        }
                    }
                }
                xhr.upload.addEventListener("progress", function (evt) {
                    widget._trigger("onProgressStatus", evt, obj);
                }, false);
                xhr.send(formdata);
    
  • Jquery ajax调用

            $.ajax({
            type: "POST", 
            url: Controller call,
            headers: headers,
            async: true,
            data: (objConfig.data != undefined) ? objConfig.data : {},
            cache: true,
            contentType:'application/x-www-form-urlencoded',
            timeout: 30000,
    
            success: function (data) {
              }
            },
            error: function (data, textStatus, jqXHR) {
            }
        });
    
  • 我们正在使用MVC4、Jquery和javascript

    谢谢,
    Anish Jain

    您到底需要什么帮助?您好,在异步使用XMLHttpRequest上传调用文件后,如果用户尝试单击包含ajax调用(jquery)的其他功能,那么jquery ajax需要等待使用XMLHttpRequest上传文件完成。我希望jqueryajax不会依赖于XMLHttpRequest文件上传完成。请帮助我:)简言之,jQueryAjax调用应该是异步的,答案是在这种体系结构中无法做到这一点。Javascript没有设计多线程功能。这就是为什么在AngularJS中,他们有一个叫做承诺的概念。如果你真的想实现所谓的异步,你需要有iframe让上传者处理上传文件。只是不要使用AJAX上传文件。