由于(Ajax)async: false
已被弃用,因此等待控制器的结果存在问题。
Ajax调用
$.ajax({
beforeSend: function () {
$("#overlay").css("display", "block");
},
url: '/ApplicationSettings/TestMuisConnection',
type: 'GET',
}).done(function (data) {
$("#overlay").css("display", "none");
if (data.succes) {
alert("Connectie geslaagd!");
} else {
alert("Connectie mislukt!");
}
}).fail(function (data) {
$("#overlay").css("display", "none");
alert("Onverwachte fout!");
});
AJAX函数调用控制器中的以下方法:
public async Task<JsonResult> TestMuisConnection() {
return Json(new { succes = await Task.Run(() => _muisAuthHelper.TestConnection()) });
}
问题是在mvc控制器函数返回值之前调用了.fail()
函数。所以它不会等待它的回应。我看了很多帖子,但我无法弄清楚如何等待控制器的响应。