Soy nuevo en el desarrollo web y en Laravel. Estoy creando una aplicación web local que se ejecutará en una PC usando Windows. Tengo un script que lee datos del dispositivo de la cámara. Este script se inicia cuando el usuario presiona un botón. este botón abre un cuadro de diálogo y crea una llamada ajax para obtener datos del script php.
Lo que necesito aquí es hacer un botón de cancelación en el cuadro de diálogo que terminará la llamada del script php.
¿Qué sucede hasta ahora? Creo una llamada ajax desde el botón cancelar dos. Pero este script PHP llamado nunca se ejecuta hasta que apague el otro script manualmente (apagando mi cámara).
Estoy listo para cambiar la idea de diseño. Estoy atascado ahora y no tengo suficiente experiencia para decidir qué hacer.
aquí está el guión hasta ahora:
<script> var updateBtn = document.getElementById("update"); var favDialog = document.getElementById("favDialog"); var cancelBtn = document.getElementById("cancel"); updateBtn.addEventListener("click", function onOpen() { favDialog.showModal(); $.ajax({ type: 'GET', url: '/getBar', data: '_token = <?php echo csrf_token() ?>', success: function(data) { window.location.assign("/view?qr=" + data); } }); }); cancelBtn.addEventListener("click", function onOpen() { $.ajax({ type: 'GET', url: '/closeApp', data: '_token = <?php echo csrf_token() ?>', success: function() {} }); }); </script> EDITAR: ajax call abort() funciona.
Creo que lo que está buscando es abortar (), suponiendo que esté usando jQuery 3.x.
La mayoría de los métodos jQuery Ajax devuelven un objeto XMLHttpRequest (o el equivalente).
Ver la documentación:
abortar Si la solicitud ya se ha enviado, este método anulará la solicitud.
<script> var updateBtn = document.getElementById("update"); var favDialog = document.getElementById("favDialog"); var cancelBtn = document.getElementById("cancel"); var request = null; updateBtn.addEventListener("click", function onOpen() { favDialog.showModal(); request = $.ajax({ type: 'GET', url: '/getBar', data: '_token = <?php echo csrf_token() ?>', success: function(data) { window.location.assign("/view?qr=" + data); } }); }); cancelBtn.addEventListener("click", function onOpen() { if (request != null) { request.abort(); } }); </script>