简体   繁体   English

不调用Ajax成功回调

[英]Ajax success callback is not invoked

When I pass function() { location.reload(); } 当我通过function() { location.reload(); } function() { location.reload(); } as a callback - it doesn't get invoked. function() { location.reload(); }作为回调-不会被调用。

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

If I un-comment //location.reload(); 如果我取消注释//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. error被调用。 But "SwapLanguage" invokes. 但是会调用“ SwapLanguage”。 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(); 
  });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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