javascript - 使用 jQuery 和表单插件引用对表单数据 POST 的 JSON 响应

标签 javascript jquery ajax

我无法理解如何使用 jQuery 及其 Form 插件来访问 HTTP post 操作返回的数据。

例如,我想从浏览器以表单形式发布数据,在服务器上处理数据,将服务器响应(JSON 格式)返回到浏览器,并在警报中向用户显示有关该响应的信息-- 无需重写表单。

我认为下面的 jQuery 代码可以做到这一点:

$(document).ready(function() {
    $('#ajaxFormSubmit').bind('click', function(event) {
        $('#data_entry_form').ajaxSubmit({
            url: "data_entry_ajax",
            dataType: "json",
            success: function(data) {
                alert('Success');
                alert(data.save_status);
            }
        });
    });
});

服务器在 JSON 对象中返回以下内容:

{'save_status': 'OK', 'id_number': 2}

但是浏览器不会在表单和用户输入的数据上显示两个警报,而是清除表单并显示 JSON 回复。

我认为提交给 ajaxSubmit 的选项中的“成功”值会自动传递从服务器收到的响应。我尝试了将参数传递给函数体的各种排列(指的是 data 而不传递它,指的是 responseText 有或没有传递任何东西),但是这些也不起作用。

我查看了“jQuery In Action”,试图了解如何访问对 xhr 对象和 .ajax() 函数的响应,但这也没有帮助。

最佳答案

尝试使用jQuery $.post()

<script>
// ...
$('#ajaxFormSubmit').bind('click', function(event) {
  $.post(
    'data_entry_ajax',
    $('#data_entry_form').serialize(),
    function(data) {
      alert('Success');
      alert(data.save_status);
    },
    'json'
  );
});
</script>

关于javascript - 使用 jQuery 和表单插件引用对表单数据 POST 的 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1533269/

相关文章:

c# - DomElement.click() 事件在 chrome 中不起作用,但其他事件可以

javascript - 获取带有通过 javascript 添加的类的元素

javascript - 使用 Web API 从数据库中检索图像,然后在 angularJS 中显示它

javascript - PHP session 变量在新页面上消失?

ajax - Firefox OS 应用程序,Firefox OS 应用程序中的 CORS

javascript - 将数据从 div 提交到数据库,which(div) 在附加 id 后获取数据

javascript - 提交前ajax表单验证如何?

javascript - 为什么无论代码中的顺序如何,都首先显示alert()对话框?

javascript - 单击前进和后退浏览器按钮时保留 javascript 数据

javascript - 如何将节点从一个列 div 拖到另一列 div