Quiero que el cargador permanezca hasta que se complete la ejecución completa y se haya ejecutado la instrucción $("#xyzDiv").html(data). Actualmente, el cargador se oculta después de la primera llamada ajax. Incluso si agrego "beforeSend: function () { $("#loader").show(); }" a GetDataList(), el cargador no se queda.
$.ajax ({ type: "POST", url: ajaxUrl, data: dataObj, beforeSend: function () { $("#loader").show(); }, success: function (data) { if (data.result) { GetDataList(); toastr.success(data.strMsg); } else { toastr.error(data.strMsg); } }, error: function (jqXHR, textStatus) { var msg = HandleAjaxErrorMessage(jqXHR, textStatus); console.log(msg); toastr.error('An error occurred. Please try again'); }, complete: function () { $("#loader").hide(); } }); function GetDataList() { $.ajax ({ type: "Get", url: ajaxUrl, data: dataObj, success: function (data) { $("#xyzDiv").html(data); }, error: function (jqXHR, textStatus) { var msg = HandleAjaxErrorMessage(jqXHR, textStatus); console.log(msg); toastr.error('An error occurred. Please try again'); } }); }