jquery ajax 表单成功回调未被调用

标签 jquery django forms file-upload

我正在尝试使用“AJAX”上传文件,处理文件中的数据,然后将其中一些数据返回到 UI,以便我可以动态更新屏幕。

我正在使用 JQuery Ajax 表单插件 jquery.form.js,位于 http://jquery.malsup.com/form/用于 javascript 并在后端使用 Django。表单正在提交,后端的处理正在顺利进行,但是当从服务器收到响应时,我的 Firefox 浏览器提示我下载/打开“application/json”类型的文件。该文件包含我一直尝试发送到浏览器的 json 内容。

我不认为这是我发送 json 的方式的问题,因为我有一个模块化的 json_wrapper() 函数,我在同一应用程序的多个位置使用该函数。

这是应用 Django 模板后我的表单的外观:

<form method="POST" enctype="multipart/form-data" action="/test_suites/active/upload_results/805/">
  <p>
     <label for="id_resultfile">Upload File:</label> 
     <input type="file" id="id_resultfile" name="resultfile">
  </p>  
</form>

您不会看到任何提交按钮,因为我正在使用其他地方的按钮调用提交,并且正在使用 jquery.form.js 插件中的 ajaxSubmit()。

这里是控制 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":"<error_message>"}

非常感谢您的时间和帮助。我已经为此花费了几天时间,并且很乐意继续前进。

最佳答案

好吧,我只是花了几个小时来解决同样的问题,逐行检查 js 文件。前一秒还在工作,下一秒就不行了。我的问题是 - 我删除了结果的目标 div。一旦我把它放回去,它就工作得很好。

关于jquery ajax 表单成功回调未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3712485/

相关文章:

javascript - 从更改后的输入读取值

python - Django 基于类的 View 不显示查询结果

php - 如何保护我的 html+PHP 表单以防止用户黑客攻击/更改

forms - Alfresco - 使用表格创建在线调查

jquery - 如何过滤选择了空白或无值选项的任何选择字段的表单提交?

javascript - 滚动动画结合 snap.js

jQuery:链接多个子元素

javascript - CSS3 Jquery Gradients - 有没有办法读取值集?

python - 如何将 CSS 存储在 Django 类中?

python - 错误 : file i/o in python