如何使用JSON从doPost方法获取数据?

时间:2011-05-09 18:29:38

标签: jquery json servlets

因为getJSON()方法用于使用AJAX HTTP GET请求获取JSON数据。 使用哪种方法从servlet中的doPost方法获取数据。 假设我已经使用动作将数据发送到servlet并想要获得响应.. 使用哪种JSON方法......一个示例或一个好的教程可以帮助

感谢:)

2 个答案:

答案 0 :(得分:0)

你可以这样做:

$.post(url, function(), return_type); //where return_type you replace with 'json'

所以基本上getJSON()只是一个别名:

$.get(url, function(), 'json'); 

这是我为postJSON制作的一个小插件:

(function($){
 $.postJSON = function(url, data, ret_fn) {
    return $.post(url, data, ret_fn, 'json');
 };
})(jQuery);

这里有小提琴:http://jsfiddle.net/maniator/H8YeE/

答案 1 :(得分:0)

那么,您基本上是在询问如何通过POST请求获取JSON数据?

而不是

$.getJSON('servleturl', function(data) {
    alert(data);
});

使用

$.post('servleturl', function(data) {
    alert(data);
});

当你让servlet执行response.setContentType("application/json")时,data已经是JSON格式。


但是,在再次阅读您的问题和评论之后,我认为您基本上要求如何使用jQuery提交POST表单。这基本上与JSON无关(尽管如果需要,servlet可以返回JSON响应)。

假设以下表格

<form id="formid" action="servleturl" method="post">
    <input type="text" name="foo" />
    <input type="text" name="bar" />
    <input type="submit" />
</form>

这里是你如何“ajaxify”它(在文档准备好的时候做的!)

$('#formid').submit(function() {
    $form = $(this);
    $.post($form.attr('action'), $form.serialize(), function(data) {
        // Do something with response. Display message? Redirect to other page?
        alert(data);
    });
});

另一个例子也见this answer

存在更好的插件,例如jQuery Form。然后就像

一样简单
$('#formid').ajaxForm(function(data) {
    // Do something with response. Display message? Redirect to other page?
    alert(data);
});

并且它也支持<input type="file">元素而没有太多麻烦。