C# Ajax.abort()不工作

C# Ajax.abort()不工作,c#,jquery,asp.net,ajax,C#,Jquery,Asp.net,Ajax,我已经阅读了很多页面,解释了ajax.abort应该如何工作,但由于某些原因,我无法将其用于我的情况。以下是我的代码: <script type="text/javascript"> $(document).ready(function () { ... function abortxhRequest() { xhRequest.abort(); }

我已经阅读了很多页面,解释了ajax.abort应该如何工作,但由于某些原因,我无法将其用于我的情况。以下是我的代码:

    <script type="text/javascript">
        $(document).ready(function () {

...

            function abortxhRequest() {
                xhRequest.abort();
            }

            var xhRequest
            function SendFileToServer(blob, fileName) {
                if (xhRequest) {
                    xhRequest.abort();
                }
                xhRequest = $.ajax({
                    xhr: function () {
                        var xhr = new window.XMLHttpRequest();
                        //Upload progress
                        xhr.upload.addEventListener("progress", function (evt) {
                            if (evt.lengthComputable) {
                                //Do something with upload progress
                                var percentLoaded = Math.round((evt.loaded / evt.total) * 100);
                                progressBar.css("width", percentLoaded + '%');
                                progressPercentage.text(percentLoaded + '%');
                            }
                        }, false);
                        //Download progress
                        xhr.addEventListener("progress", function (evt) {
                            if (evt.lengthComputable) {
                                //Do something with download progress
                                var percentLoaded = Math.round((evt.loaded / evt.total) * 100);
                                progressBar.css("width", percentLoaded + '%');
                                progressPercentage.text(percentLoaded + '%');
                            }
                        }, false);
                        return xhr;
                    },
                    type: "POST",
                    url: "myPage.aspx/SendFileToServer",
                    data: "{blob: \"" + blob + "\", fileName: \"" + fileName + "\"}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {

                        // If there was no data show No Data display
                        if (msg.d == "success") {
                            $("#spManagePhoto").html("Complete!");
                            setTimeout(function () {
                                $("#divManagePhotoTakePhoto").show();
                                $("#divManagePhotoUploading").hide();
                            }, 2000);
                        }
                    },
                    error: function (xhr, status, thrownError) {      //Something went wrong on front side
                            alert(xhr.responseText);                      //You don't want to read all that, lol
                            //alert(thrownError);                         //Right down to the point
                    }
                });
            }
        });

...

    </script>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
...
            <div id="divManagePhotoUploading">
                <center>
                    <div class="marginTop10"><span id="spManagePhoto" class="SubmittingText"></span></div>
                    <div class="marginTop20"><img src="Images/ajax-loader.gif" alt="Loading..." /></div>
                </center>
                <div id="divProgressBarShell" class="ui-corner-all">
                    <div style="margin:5px; position:relative">
                        <div id="progress_bar">
                            <table border="0" cellpadding="0" cellspacing="0" style="width:100%; height:100%"><tr align="center"><td valign="middle">
                                <div class="percent"></div>
                                <label class="PercentLabel">0%</label>
                            </td></tr></table>
                        </div>
                    </div>
                </div>
                <div>
                    <button onclick="abortxhRequest();" class="nav-button2" style="display:block">Cancel Upload</button>
                </div>
            </div>
...
</asp:Content>

当我单击CancelUpload按钮时,ajax抛出一个错误。错误状态为error,xhr.responseText为空。我做错了什么?非常感谢您提供的任何帮助。

中止将触发Ajax中的错误。这是JQuery的标准行为

执行此操作以检测错误但不中止:

error: function (jqXHR, textStatus, errorThrown) {
   if (textStatus != "abort") { // aborting actually triggers error with textstatus = abort.
      alert(errorThrown.message);
   }
}
以下是此行为的参考:

我希望这么简单,但是textStatus是error而不是abort,而jqXHR.responseText是空的。