没有通过 Ajax 的 Servlet 响应

发布于 2024-10-13 05:48:07 字数 817 浏览 1 评论 0原文

我编写了一个简单的 servlet 来处理 Ajax 请求。在服务器端,调用了doPost,但是我在响应对象中设置的数据不会反映在客户端上。 (实际上,根据 Firebug,我没有在客户端上得到任何信息)。我使用 jQuery 来处理 Ajax。

客户端代码:

$.post(
   '/mapped/url?param=' + $('#eleId').val(),
      function(data){
        alert(data);
      },
      "xml"
);

在服务器上:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("!!!In post!!!!");
    // some calculations go here

    response.setContentType("application/xml");
    response.setHeader("Cache-Control", "no-cache");

    response.getWriter().write("<data><param number=\"\"></param></data>");
            response.setStatus(HttpServletResponse.SC_OK);
}

提前致谢!

I've written a simple servlet for processing an Ajax request. On the server side, the doPost is called, but the data that I've set in the response object is not reflected on the client. (Actually, I'm not getting anything on the client according to Firebug). I'm using jQuery to handle the Ajax.

Client code:

$.post(
   '/mapped/url?param=' + $('#eleId').val(),
      function(data){
        alert(data);
      },
      "xml"
);

On the server:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("!!!In post!!!!");
    // some calculations go here

    response.setContentType("application/xml");
    response.setHeader("Cache-Control", "no-cache");

    response.getWriter().write("<data><param number=\"\"></param></data>");
            response.setStatus(HttpServletResponse.SC_OK);
}

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

为人所爱 2024-10-20 05:48:07

您需要逐步调试此问题,因为此问题可能意味着从不正确的 Servlet 配置到客户端代码中的错误等任何情况。

  1. 您在 XHR (AJAX) 请求的 Firebug 中看到什么状态代码? (200 以外的任何值都是危险信号。检查服务器日志)
  2. 您的 system.out 语句是否正在执行?即“!!!在帖子中!!!”已登录?
  3. 创建一个简单的 html,其中包含一个发布到 servlet 的表单,并查看是否返回任何结果。
  4. 根据上述步骤的结果,如果需要进一步调试。

You need to debug this in steps as this issue could mean anything from improper Servlet configuration to a bug in the client side code.

  1. What status code are you seeing in firebug for the XHR (AJAX) request? (anything other than 200 is a red flag. check server logs)
  2. Is your system.out statement getting executed? i.e. is "!!!In post!!!!" logged?
  3. Create a simple html with a form that posts to the servlet and see if you get any results back.
  4. Depending on the results for above steps, debug further if required.
所有深爱都是秘密 2024-10-20 05:48:07

您可能必须显式关闭输出流 -

  PrintWriter out = res.getWriter();

  out.println( "Sample response" );
  out.close();

You may have to explicitly close the output stream -

  PrintWriter out = res.getWriter();

  out.println( "Sample response" );
  out.close();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文