#javascript #php #ajax #laravel
#javascript #php #ajax #laravel
Вопрос:
Я новичок в веб-разработке и Laravel. Я создаю локальное веб-приложение, которое будет работать на одном ПК с использованием Windows. У меня есть скрипт, который считывает данные с устройства камеры. Этот скрипт запускается, когда пользователь нажимает кнопку. эта кнопка открывает диалоговое окно и создает вызов ajax для получения данных из php-скрипта.
Что мне здесь нужно, так это создать кнопку отмены в диалоговом окне, которая завершит вызов php-скрипта.
Что происходит до сих пор? Я создаю вызов ajax с помощью второй кнопки отмены. Но этот вызываемый PHP-скрипт никогда не выполняется, пока я не отключу другой скрипт вручную (выключив камеру).
Я готов изменить идею дизайна. Я просто застрял сейчас, и у меня недостаточно опыта, чтобы решить, что делать.
вот сценарий до сих пор:
<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>
РЕДАКТИРОВАТЬ: вызов ajax abort()
работает.
Ответ №1:
Я думаю, что вы ищете abort() , предполагая, что вы используете jQuery 3.x .
Большинство методов jQuery Ajax возвращают объект XMLHttpRequest (или эквивалентный).
Смотрите документацию:
- прервать. Если запрос уже был отправлен, этот метод прервет запрос
<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>
Комментарии:
1. Это не работает. Я попробовал, и запрос все еще обрабатывается. и даже я все еще не могу отправить другой запрос.
2. @Antoun пожалуйста, отметьте его как принятый ответ, чтобы он мог помочь входящим людям с той же проблемой. Спасибо