AJAX网址不在IE中工作

时间:2018-04-04 10:46:42

标签: jquery ajax

我希望有人可以帮助我。我刚刚开始使用AJAX,我遇到了URL问题。 用户从多选下拉列表中选择一个选项。当他们按保存时,数据将发布到下面的Ajax。

 $("#getSelected").click(function (e) {
                     e.preventDefault();
                    var myList  = $('select#my-select').val();
                    var list_new = "[" +myList+ "]"
                    var parseList = JSON.parse(list_new);

                    var ajaxResponse = $.ajax({
                        type: 'POST',
                        url: "/mysite/my-account/updatefavourite.cfm?q=1&buster='+new Date().getTime();",
                        contentType: "application/json; charset=utf-8",
                        cache: false,
                        data: JSON.stringify( parseList ),
                        success: function() {
                               $("#successMessage").show();
                                }
                    })
                    alert("test");
                   location.reload();
                });

在Chrome和Firefox中,没有警报就可以正常工作。在IE中,如果我包含警报(" test"),那么一切正常。数据发布到我的页面,它更新数据库,重新加载页面并更新显示列表。删除警报后,网址将不再有效,数据也不会发送到我的网页。 有人可以帮忙吗为什么在IE中它可以使用警报,但不是没有它,如何在没有警报的情况下让它工作。

1 个答案:

答案 0 :(得分:3)

问题是因为您在 AJAX请求完成之前调用了reload() ,因此,具体取决于响应返回的速度和浏览器处理的速度,请求已取消,页面已卸载。

要在 AJAX调用的reload()处理程序中修复此调用success



$("#getSelected").click(function(e) {
  e.preventDefault();
  // vars...

  var ajaxResponse = $.ajax({
    // ajax settings...
    success: function() {
      $("#successMessage").show();
      location.reload();
    }
  });
});




即说,制作AJAX请求然后重定向页面非常奇怪。 AJAX的全部意义在于你不必这样做。我建议你修改你的逻辑,只做一个或另一个,即。发送请求中的所有数据以加载页面,或发送AJAX请求,然后使用JS根据需要使用新信息修改DOM。