Не вызывается обратный вызов успешной формы jquery ajax

Я пытаюсь загрузить файл с помощью AJAX, обработать данные в файле и затем вернуть некоторые из этих данных в пользовательский интерфейс, чтобы я мог динамически обновите экран.

Я использую JQuery Ajax Form Plugin, jquery.form.js, найденный по адресу http://jquery.malsup.com/form/ для javascript, и использую Django для задний конец. Форма отправляется, и обработка на серверной стороне проходит без проблем, но когда от сервера получен ответ, мой браузер Firefox предлагает мне загрузить / открыть файл типа «application / json». В файле есть содержимое json, которое я пытался отправить в браузер.

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

Вот что выглядит моя форма после применения шаблонов Django:

Вы не увидите никаких кнопок отправки, потому что я вызываю submit с кнопка еще где и я использую ajaxSubmit () из плагина jquery.form.js.

Вот управляющий код javascript:

function upload_results($dialog_box){
    $form = $dialog_box.find("form");
    var options = {
            type: "POST",
            success: function(data){
                alert("Hello!!");
            },
            dataType: "json",
            error: function(){
                console.log("errors");

            },
            beforeSubmit: function(formData, jqForm, options){
                    console.log(formData, jqForm, options);
                },
        }
    $form.submit(function(){
        $(this).ajaxSubmit(options);
        return false;
    });
    $form.ajaxSubmit(options);
}

Как видите, я ' Мы отчаянно пытались увидеть, как работает функция обратного вызова, и просто создать предупреждающее сообщение в случае успеха. Однако мы так и не добрались до этого звонка. Кроме того, функция error не вызывается и выполняется функция beforeSubmit .

Файл, который я получаю, имеет следующее содержимое:

{"count": 18, "failed": 0, "completed": 18, "success": true, "trasaction_id": "SQEID0.231"}

Я использую здесь «успех» чтобы обозначить, смог ли сервер адекватно запустить команду post. В случае неудачи результат будет примерно таким:

{"success": false, "message":""}

Мы очень благодарны за ваше время и помощь. Я потратил на это несколько дней и хотел бы продолжить.

12
задан Michael Merchant 14 September 2010 в 22:28
поделиться