在某些浏览器上停止Ajax调用

时间:2015-03-16 15:45:54

标签: javascript jquery ajax

根据控制台,这个Ajax在商业环境中使用Firefox在某些 PC上发布的调用并不会发生(240个相同的安装) 。如果我删除location.reload();那么Ajax帖子就好了。但是,浏览器并没有因为使用Ajax而失败。

我做错了吗?

 select: function(start, end, allDay, jsEvent, view) {                  
                    if (userID) {                   
                        var start = moment(start).format('YYYY-MM-DD')
                        var end = start;                
                        $.ajax({
                            type: "POST",
                            cache: false,
                            url: 'http://intakecalendar/adddate.php',
                            data: 'userID='+ userID + '&start=' + end   //+ '&end=' + end <-- Providing the REAL end date makes it show on the wrong day
                        });                     
                    } //End if
                    location.reload();
            } // end select

1 个答案:

答案 0 :(得分:6)

这是竞争条件。您正在进行http调用并重新加载页面。只有一个会胜出现代浏览器,页面导航会中止打开http请求。

将重新加载移至成功/完成处理程序。

select: function(start, end, allDay, jsEvent, view) {
  if (userID) {
    var start = moment(start).format('YYYY-MM-DD')
    var end = start;
    $.ajax({
      type: "POST",
      cache: false,
      url: 'http://intakecalendar/adddate.php',
      data: 'userID=' + userID + '&start=' + end, //+ '&end=' + end <-- Providing the REAL end date makes it show on the wrong day
      complete: function() {
        window.location.reload();
      }
    });
  } else {
    window.location.reload();
  }

}