简体   繁体   中英

Ajax success callback is not invoked

When I pass function() { location.reload(); } function() { location.reload(); } as a callback - it doesn't get invoked.

$('#swapLanguageLink').click(function() {
    $.post('@Url.Action("SwapLanguage", "Language")', function() { location.reload(); });
    //location.reload();
});

If I un-comment //location.reload(); (instead of passing callback) - it works nice, but I am not sure if it is async or not.

It can happen that my document will be reloaded before async operation is finished, right? So why my callback doesn't work?


Edit:

$.post('@Url.Action("SwapLanguage", "Language")', null, function () { 
    location.reload();
}).done(function () {
    location.reload();
}).error(function () {
    alert('error');
});

I've tried the code above. error get invoked. But "SwapLanguage" invokes. Something really strange to me!

Something like this:

jQuery.ajax({
    type: "POST",
    async: true,
    url: '@Url.Action("SwapLanguage", "Language")',
    success: function (data) {
       location.reload(); 
    },
    error: function (err)
    { 
      alert("error");
    }
});

OR

$.post('@Url.Action("SwapLanguage", "Language")', null)
  .done(function(data) {
     location.reload(); 
  });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM