WedX - журнал о программировании и компьютерных науках

Вызов URL-адреса JQuery AJAX - иногда не работает

Я использую структуру JEasyUI на странице, и у меня есть форма, которая вызывает URL-адрес при отправке, который выполняет некоторую работу с БД. Вот URL-адрес вызова функции (который определен в другой функции ранее в коде):

function saveClientItem() {
  console.log("Save Client Item, url:" + url);
  $('#formClientItem').form('submit', {
    url: url,
    onSubmit: function() {
      return $(this).form('validate');
      return false;
    },
    success: function(result) {
      console.log("Success saving client item with url:" + url);
      $('#windowClientItem').dialog('close');
      $('#tableClientsList').datagrid('reload');
    }
  });
};

На некоторых компьютерах страница работает нормально, а на других время от времени вызывает URL, но всегда возвращает успех. Вот выдержка из консоли Chrome и сетевого журнала на том компьютере, где он работает как надо: Журнал с компьютера, на котором  работает нормально

Я отметил client.php, который вызывается для работы с БД.

Вот выдержка из консоли Chrome и сетевого журнала на компьютере, где он не работает должным образом:

Журнал с компьютера, на котором он работает спорадически

Я попытался очистить кеш на втором компьютере, обновив с помощью Ctrl + F5, после этого страница работает несколько раз, а затем снова не вызывает URL-адрес. Пока попробовал на 4 компах с разными результатами, 50-50 работает-не работает. Мне нужна подсказка, что проверить на компьютерах, где это не работает, или, может быть, другой надежный способ отправки формы на страницу PHP.

Я добавил событие ошибки в функцию,

error: function(result) {
  console.log("error saving client item with url:" + url);
}

...и что меня озадачивает, так это то, что успех всегда зовется. Я понимаю, что что-то препятствует вызову URL-адреса (догадываясь о какой-то проблеме с сетью), но не должно ли возникать событие ошибки?

19.08.2020

  • Можете ли вы поделиться более подробной информацией? Что вы пытались проверить, почему это происходит? Является ли отправка запроса проблемой, получение запроса внутренним сервером, отправка ответа, обработка ответа? 19.08.2020

Ответы:


1

После попытки:

  • Изменение версии jEasyUI с 1.9.7 на 1.4.2
  • Изменение версии jQuery с 1.13.1 на 3.5.1

... с той же проблемой, возникающей каждый раз (даже после очистки кеша и всех данных браузера), я попытался поместить функцию в цикл и вызвать ее до 100 раз с некоторыми случайными значениями для публикации, а файл client.php вызывался случайным образом: иногда после 1 попытки, иногда после 17 попыток, иногда вообще не вызывался. В итоге я изменил свою функцию, чтобы она выглядела так:

function saveClientItem() {
  $('#formClientItem').form('submit', {
    url: url,
    onSubmit: function() {
      $.ajax({
          type: 'POST',
          url: url,
          data: $(this).serialize()
        })
        .done(function(data) {
          console.log("Posting success:" + data);
          $('#windowClientItem').dialog('close');
          $('#tableClientsList').datagrid('reload');
        })
        .fail(function() {
          console.log("Posting failed.");
        });
      // prevent refreshing the page
      return false;
    }
  });
};

Поместите в цикл 100 последовательных отправок, которые он отправляет каждый раз (проверено около 10 раз), тогда как старая функция все еще причудлива. Я надеюсь, что это поможет кому-то.

27.08.2020
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]