【发布时间】:2011-08-21 21:44:34
【问题描述】:
由于 getJSON() 方法用于使用 AJAX HTTP GET 请求获取 JSON 数据。 使用哪种方法从 servlet 中的 doPost 方法获取数据。 假设我已经使用 action 将数据发送到 servlet 并希望得到响应.. 使用哪种 JSON 方法..一个例子或一个好的教程会有所帮助
谢谢:)
【问题讨论】:
由于 getJSON() 方法用于使用 AJAX HTTP GET 请求获取 JSON 数据。 使用哪种方法从 servlet 中的 doPost 方法获取数据。 假设我已经使用 action 将数据发送到 servlet 并希望得到响应.. 使用哪种 JSON 方法..一个例子或一个好的教程会有所帮助
谢谢:)
【问题讨论】:
那么,您基本上是在问如何通过 POST 请求获取 JSON 数据?
代替
$.getJSON('servleturl', function(data) {
alert(data);
});
使用
$.post('servleturl', function(data) {
alert(data);
});
当您让 servlet 执行 response.setContentType("application/json") 时,data 已经是 JSON 格式了。
但是,在再次阅读您的问题和 cmets 之后,我认为您基本上是在问如何使用 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"> 元素,没有太多麻烦。
【讨论】:
你可以这样做:
$.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);
【讨论】:
example 是什么意思?我想我很清楚:-P
$.post(url, function, 'json'),也就是$.postJSON,出于某种原因,jQuery 从来没有做过postJSON 方法,但那是一回事