В моем контроллере метод A вызывает метод B. Было очевидно, что они вызывались дважды. Я подтвердил это, написав в окне вывода. Интересно, что сказано:
Method A was called.
Method A was called.
Method B was called.
Method B was called.
Я бы ожидал A, B, A, B. Кроме того, несмотря на двойные вызовы, я получил XHR.statusText только один раз. Я знаю, потому что этот текст автоматически добавляется в таблицу в браузере.
В любом случае, проблема связана с jquery.form.js. Я использую его для включения загрузки файлов AJAX.
В документации сказано, что при инициализации подключения jquery.form.js к вашей HTML-форме во время $ (document) .ready () вы можете добавить опцию, называемую «url». Если вы этого не сделаете, по умолчанию используется ДЕЙСТВИЕ вашей формы.
Я полагался на значение по умолчанию и получал двойные вызовы.
Проблема исчезла, когда я добавил опцию url и удалил действие из тега формы.