javascript - getJSON 和 servlet 通信错误

标签 javascript servlets

我让 tomcat 在端口 8080 和简单的 servlet 上运行:

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.awt.*;

public class MyHelloWorld extends HttpServlet {

    public void doGet(HttpServletRequest request, 
            HttpServletResponse response)
    throws IOException, ServletException
    {
        String data = "Hello World from servlet!";
        response.setContentType("text/plain");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(data);
    }
}

wget 在此 servelet 的 URL 上,检索一个字符串:

"Hello World from servlet!"

网络浏览器也会打印它,所以它可以工作,并且 tomcat 的访问日志显示响应“200”

但是当我试图通过我的 javascript 获取这个字符串时:

<html>

<head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>


            $.getJSON({ 
    type: "GET", url: "http://localhost:8080/examples/MyHelloWorld", 
    contentType: "text/plain", 
    error: function(xhr, ajaxOptions, thrownError){ 
                alert(ajaxOptions);
                alert(xhr.status); 
                alert(thrownError);
            }, 
    processData: true, 
    success: function(data, textStatus, jqXHR){ alert(data); }
});
</script>

</script>

</head>

在 tomcat 的日志中我可以看到响应 200,但浏览器没有显示任何内容 - 只是没有内容的空白页面。如果我将 getJSON 更改为 getajax 我会收到以下警报:

xhr.status = 0
ajaxOptions = "error"
thrownError = empty

网络服务器是 apache,它运行在端口 80 上

谢谢大家的帮助

最佳答案

尝试这样的事情:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    String data = "Hello World from servlet!";
    response.setContentType("text/plain");
    response.setCharacterEncoding("UTF-8");

    if (request.getContentType().equals("application/json")) {
        data = "\"" + data + "\"";
    }

    response.getWriter().write(data);
}

在你的 js 中:

$.getJSON("http://localhost:8080/examples/MyHelloWorld", function(data) {
   alert(data)
})

关于javascript - getJSON 和 servlet 通信错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11830441/

相关文章:

java - 在 .war 文件下创建一个 java-properties 文件

spring - org.springframework.web.filter.CharacterEncodingFilter 无法转换为 javax.servlet.Filter

java - 为什么在简单的 JAX-RS servlet 中出现 404?

java - JSP Servlet请求的资源()不可用

servlets - 在运行 Jersey REST 服务的 Grizzly 服务器上使用过滤器

javascript - 在简单函数或条件中组合 4 个 bool 值

javascript - Google 图表以编程方式添加选项

javascript - 这种自调用匿名函数变体背后的原因

javascript - 从客户端执行服务器端

javascript - 现在有必要配置React.js环境(Webpack,Babel)吗?