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

时间:2009-10-07 18:06:18

标签: 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()函数的响应,但这也没有帮助。

1 个答案:

答案 0 :(得分:2)

尝试使用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>