У меня есть кнопка, которую пользователь нажимает и спрашивает его, хочет ли он продолжить запрос или нет. Если он выберет «ОК», на сервер будет отправлен запрос AJAX, а когда ответ получен, будет запущено новое «сладкое» оповещение, информирующее пользователя о том, что запрос был выполнен успешно или нет.
Проблема в том, что я если пользователь подтверждает, что запрос отправлен, и ответ получен, пользовательский интерфейс может снова нажать кнопку, запускающую запрос.
Если есть какой-либо способ заблокировать пользовательский интерфейс во время запроса отправляется и / или закрывается первый подсластитель, когда получен ответ, и запускает второй подсластитель для информирования пользователя о результате запроса?
Это код:
"use strict";
function likeProperty(matchid) {
swal.fire({
buttonsStyling: false,
text: "¿Esta seguro que desea enviar una notificación al agente informando que estás interesado en su propiedad?",
type: "question",
confirmButtonText: "Si, enviar!",
confirmButtonClass: "btn btn-sm btn-bold btn-brand",
showCancelButton: true,
cancelButtonText: "No, cancelar",
cancelButtonClass: "btn btn-sm btn-bold btn-danger"
}).then(function (result) {
if (result.value) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'POST',
url: '/processes/offerdemand/matchlike/'+ matchid,
data: {
'id': matchid,
},
dataType: 'JSON',
success: function (data) {
if (data.status != 200) {
console.log(data.status);
swal.fire({
"title": "",
"text": "Ocurrió un error, contactar al administrador",
"type": "error",
showConfirmButton: !1,
timer: 3000,
onClose: () => {
window.location.reload();
}
});
}
if (data.status = 200) {
swal.fire({
"title": "",
"text": "Se ha notificado al agente que estas interesado en su propiedad!",
"type": "success",
showConfirmButton: !1,
timer: 3000,
onClose: () => {
window.location.reload();
}
});
}
// hide like button
$('#likeprop'+matchid).hide();
// show like button
$('#unlikeprop'+matchid).show();
// window.location.reload();
console.log(data);
},
})
var xhr = $.ajax();
console.log(xhr)
}
});
}