Javascript/Java Servlet之间的响应/请求

Response/Request between Javascript/Java Servlet

本文关键字:响应 请求 Servlet Java Javascript 之间      更新时间:2023-09-26

我有一个简单的测试客户端-服务器应用程序。客户端是html/javascript,服务器- Java Servlet

首先我想测试请求/响应机制。因此,我使用了一个简单的客户端代码(jQuery):

$.get ("http://localhost:8081/TestProject/BasicServlet",
       function(data) {
          alert('Data:' +data);
       }
);

服务器端:

protected void doGet(HttpServletRequest req, HttpServletResponse res) ... {
      String callBack = "TestCallback";
      res.setContentType("text/html");
      ServletOutputStream out = res.getOutputStream();
      out.write(callBack.getBytes("UTF-8"));
      out.flush();
}

所以,Servlet捕获来自客户端的请求,但我有响应问题,响应头看起来不错,具有字符属性,但我没有收到callBack数据

作为Firebug的响应,我有3个选项卡,Header, Answer, HTML。答案和HTML为空

编辑:

我发现了一个问题:它是Access-Control-Allow-Origin违规。感谢您的帮助!

根据这里的文档

http://download.oracle.com/javaee/6/api/javax/servlet/ServletResponse.html getOutputStream

用于发送二进制数据。所以我的猜测是Content-Type头被设置为一些不被jQuery识别的MIME类型。我建议你检查是否内容类型头仍然是"文本/html"在响应中使用FireBug,或使用

PrintWriter writer = res.getWriter();
writer.write(callBack);
writer.flush();

顺便说一下,使用PrintWriter发送文本数据是推荐的方法。

尝试out.print()而不是out. write(),您将在ajax调用中获得响应。