首页 > 解决方案 > 通过 Jquery GET 调用将 JSON 对象传递给 Java Servlet

问题描述

如何使用 JQUERY get 方法将 JSON 数组/对象传递给我的 Java Servlet?

到目前为止,这是我的代码:

 var json = {
        MA_ID : $("#emplID").val(),
        MA_Nachname : $("#nachname").val()
 }
  $.get(url + "/MA_Update", json) 
  [...]

MA_Update.java

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    StringBuffer jb = new StringBuffer();
    String line = null;
    BufferedReader reader = request.getReader();
    while ((line = reader.readLine()) != null) {
        jb.append(line);
    }

    try {
        JSONObject jsonObject = HTTP.toJSONObject(jb.toString());
        System.out.println(jsonObject);
    } catch (JSONException e) {
        // crash and burn
        throw new IOException("Error parsing JSON request string");
    }
}

但我只得到

{"Request-URI":"","Method":"","HTTP-Version":""}

根据我的要求

标签: javascriptjavajqueryservlets

解决方案


不要使用request.getReader(),使用request.getParameter("MA_ID")等,或request.getParameterMap()(并对其进行迭代)。

问题是,它$.get(url, jsObject)创建了一个 HTTP GET 请求,其中 jsObject 的字段被转换为查询参数,即http://your.server.com/MA_Update?MA_ID=someID&MA_Nachname=SomeLastName,因此它们在请求正文中不可用(就像它们在 POST 请求中一样)。


推荐阅读