【问题标题】:How to get data from doPost method using JSON?如何使用 JSON 从 doPost 方法获取数据?
【发布时间】:2011-08-21 21:44:34
【问题描述】:

由于 getJSON() 方法用于使用 AJAX HTTP GET 请求获取 JSON 数据。 使用哪种方法从 servlet 中的 doPost 方法获取数据。 假设我已经使用 action 将数据发送到 servlet 并希望得到响应.. 使用哪种 JSON 方法..一个例子或一个好的教程会有所帮助

谢谢:)

【问题讨论】:

    标签: jquery json servlets


    【解决方案1】:

    那么,您基本上是在问如何通过 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);
    });
    

    它还支持&lt;input type="file"&gt; 元素,没有太多麻烦。

    【讨论】:

    • @BalusC-没错...BalusC 你似乎很了解它..你能推荐我一些好的教程..小复杂的..谢谢:)
    • 对于 JSP/Servlet,请查看我们 wiki 页面底部的链接:JSPServlets。对于 jQuery,请查看its homepage 中提到的教程(我推荐“jQuery in Action”一书)。对于 JSP/Servlet/jQuery 组合,请检查以下答案:update current page with servletsimple calculator in JSP
    【解决方案2】:

    你可以这样做:

    $.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/

    【讨论】:

    • @Neal-你能给我举个例子吗...我是初学者..这会更清楚..任何好的教程都会有所帮助,因为我看到的很简单..谢谢: )
    • example 是什么意思?我想我很清楚:-P
    • @Neal-Well $.post 正在将参数发送到 servlet 仪式...我的意思是说我已经通过
      ,那么我如何使用 JSON 从服务器检索数据???为什么没有像 getJSON() 这样的方法来发布??有什么特殊原因吗??为什么没有像 getJSON() 这样的 postJSON ??
    • 我刚刚告诉过你。做$.post(url, function, 'json'),也就是$.postJSON,出于某种原因,jQuery 从来没有做过postJSON 方法,但那是一回事
    • @Neal...简洁明了:)
    猜你喜欢
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    相关资源
    最近更新 更多