【问题标题】:How to get the data via ajax in servlet?如何在servlet中通过ajax获取数据?
【发布时间】:2012-03-06 19:56:02
【问题描述】:

我想将页面上的一些数据发送到 servlet

所以我写了下面的 jquery 来做到这一点

我用所有数据构建一个json字符串,直接发送给servlet

但我不知道如何从 servlet 中的 ajax 获取全部数据

$("#save").click
(
    function()
    {
        $.ajax
        (
            {
                url:'/WebApplication1/Controller',
                data:'{"name":"abc","address":"cde"}',
                type:'post',
                cache:false,
                success:function(data){alert(data);},
                error:function(){alert('error');}
            }
        );
    }
);

如果从 chrome 中查看请求标头的表单数据段

你会看到整个 json 字符串是关键。

Request URL:http://192.168.0.13/WebApplication1/Controller
Request Method:POST
Status Code:404 Not Found
Request Headersview source
Accept:*/*
Accept-Charset:Big5,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Content-Length:112
Content-Type:application/x-www-form-urlencoded
Host:192.168.0.13
Origin:http://192.168.0.13
Referer:http://192.168.0.13/system_admin/building.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.910.0 Safari/535.7
X-Requested-With:XMLHttpRequest
Form Dataview URL encoded
{"name":"abc","address":"cde"}:
Response Headersview source
Accept-Ranges:bytes
Connection:Keep-Alive
Content-Language:en
Content-Type:text/html; charset=iso-8859-1
Date:Wed, 15 Feb 2012 12:37:24 GMT
Keep-Alive:timeout=5, max=100
Server:Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1
Transfer-Encoding:chunked
Vary:accept-language,accept-charset

【问题讨论】:

    标签: javascript jquery ajax json servlets


    【解决方案1】:

    您可以通过 ajax 发送数据而无需任何形式,您可以通过 GET 或 POST 发送数据,但您必须以某种方式调用执行 ajax 请求(http 请求)的函数。

    例如,您可以通过链接调用您的函数,这样:

    html:

    <a href="" onClick="javascript: yourAjaxCallFunction(parameters)" >Link Text</a>
    

    javascript:

    function yourAjaxCallFunction(parameters) 
    {
      //this function sends the request via jquery ($().ajax) 
      sendHttpRequest(parameters);
    
      //this one handles the response (process data)
      processResult();
    }
    

    此链接可能是您正在寻找的 ajax function in jQuery documentation

    【讨论】:

      【解决方案2】:

      看这里,

      data:'{"name":"abc","address":"cde"}',
      

      您的data 属性错误。它不应该是一个字符串,而是一个真正的 JSON 对象。删除那些单引号。

      data:{"name":"abc","address":"cde"},
      

      这样它就可以在 servlet 中以通常的方式使用

      String name = request.getParameter("name"); // abc
      String address = request.getParameter("address"); // cde
      

      另见:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-25
        • 1970-01-01
        • 2012-04-10
        • 2014-06-14
        • 1970-01-01
        相关资源
        最近更新 更多