weixin_33737134 2016-06-15 12:29 采纳率: 0%
浏览 49

多个XMLHttpRequest

I call ajax request in a loop. Around 20 of them. But few are getting aborted. How can I avoid that ?

Most of them are getting aborted.

function callURLAsync(url) 
{
  var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) 
    {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) 
    {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }

    self.xmlHttpReq.open('POST', url, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    self.xmlHttpReq.onreadystatechange = function() 
    {
        if (self.xmlHttpReq.readyState == 4) {
        }
    }

    self.xmlHttpReq.send();
}

function startLogout(){

    for(var i=0;i< 20;i++){
        callURLAsync("myDummyURl");
    }

}

Thanks Sailesh

  • 写回答

1条回答 默认 最新

  • weixin_33696106 2016-06-16 12:05
    关注

    Reasons for Ajax calls to get aborted:

    • Form or page navigation - cancel the action that is causing navigation, you can not cancel or delay onunload
    • Calling abort
    • Reusing same XMLHttpRequest object

    In your case it sounds like the button is navigating the page away. What you need to do is use event.preventDefault() or return false from the button click. After all the Ajax calls are done, you can use window.location to do the redirection.

    评论

报告相同问题?