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

标签 java javascript jquery servlets

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

首先我想测试请求/响应机制。因此我为 cliet(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 捕获来自客户端的请求,但我的响应有问题,响应 header 看起来不错,具有字符属性,但我没有收到回调数据

作为 Firebug 中的响应,我有 3 个选项卡:标题、答案、HTML。答案和 HTML 为空

编辑: 我发现了一个问题:这是访问控制允许来源违规。 感谢您的帮助!

最佳答案

根据此处的文档

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

用于发送二进制数据。所以我的猜测是 Content-Type header 被设置为 jQuery 无法识别的某种 MIME 类型。我建议您使用FireBug检查响应中的Content-Type header 是否仍然是“text/html”,或者使用

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

顺便说一下,建议使用 PrintWriter 发送文本数据。

关于java - Javascript/Java Servlet 之间的响应/请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5872107/

相关文章:

java - 柱体改造2包括大括号

javascript - create-react-app 应用程序在未弹出时将其 babel 配置存储在哪里?

javascript - 控制台显示 JavaScript 数组未定义,但我能够记录其内容

jquery - 找到可用的特定类名后将 css 应用到 html 元素

java - JavaFX 中的三次方程图。

java - 是否真的值得为实体类实现 toString()

JavaScript: '!0' 是 boolean 值 'true' 的简写吗?

javascript - 无法在 JS forEach 中使用变量

jquery - 一个ajax错误引发的响应是什么

java - java String.format 可以处理替换吗?而不是 %s