Javascript servlet-为什么XMLHttpRequestResponseText总是空的?

Javascript servlet-为什么XMLHttpRequestResponseText总是空的?,javascript,ajax,tomcat,servlets,Javascript,Ajax,Tomcat,Servlets,我在这里试图解决这个问题,真是疯了。我在本地主机上运行的Tomcat中部署了以下servlet:8080-: @WebServlet(urlPatterns = { "/createcon" }, asyncSupported = true) public class CreateCon extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServl

我在这里试图解决这个问题,真是疯了。我在本地主机上运行的Tomcat中部署了以下servlet:8080-:

@WebServlet(urlPatterns = { "/createcon" }, asyncSupported = true)
public class CreateCon extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    ConcurrentHashMap<String, AsyncContext> map;
    public CreateCon() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */

    public void init() {
         map = new ConcurrentHashMap<>();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        AsyncContext context = request.startAsync(request,response);
        context.setTimeout(10000);
        if(!map.containsKey("Hello"))
        map.put("Hello", context);
        System.out.print("Inside GET");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        AsyncContext context = map.get("Hello");
        PrintWriter writer = context.getResponse().getWriter();
        writer.write(request.getParameter("message"));
        writer.flush();
        System.out.print(request.getParameter("message"));
    }

}
onreadystatechange
准确地在预期的时间触发,但是
xmlhttp.responseText
始终为空。

我知道有一种叫做同源政策的东西。但我不明白为什么这是个问题?我在
localhost:8080
上运行所有程序


为什么这种情况仍在发生?我该如何解决它?好的,解决了。我猜这是我自己的愚蠢错误。startchat()方法应修改为-:

function startChat() {
    var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "/SampleTest/createcon", true);
        xmlhttp.send();
        xmlhttp.onreadystatechange=function(){
            if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            alert(xmlhttp.responseText);
            }
        }
    }

由于我试图从
startChat()

发出的请求中查找结果,控制台中的请求返回了什么?@Mouser您在谈论哪个请求?你能不能更具体一点你指的是什么?我指的是你在服务器上对
/SampleTest/createcon
的XmlHTTPRequest。如果您在浏览器中查看控制台的“网络”选项卡,您可以检查请求是如何发送的以及它返回了什么。@Mouser它不返回任何内容。
function startChat() {
    var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "/SampleTest/createcon", true);
        xmlhttp.send();
        xmlhttp.onreadystatechange=function(){
            if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            alert(xmlhttp.responseText);
            }
        }
    }