Java 为什么我的AJAX请求接收空responseText

Java 为什么我的AJAX请求接收空responseText,java,javascript,ajax,servlets,Java,Javascript,Ajax,Servlets,我使用Javascript函数向Javaservlet发送一个请求,servlet编写一个内容类型设置为“text/plain”的响应。 我已经用Firebug对此进行了跟踪,并且request.responseText始终为null,即使请求以状态200(OK)完成。 为什么responseText为空 我以前曾在Java客户机上尝试过这一点,它确实成功地收到了响应 google.maps.event.addListener(map, 'click', function(event) {

我使用Javascript函数向Javaservlet发送一个请求,servlet编写一个内容类型设置为“text/plain”的响应。 我已经用Firebug对此进行了跟踪,并且request.responseText始终为null,即使请求以状态200(OK)完成。 为什么responseText为空

我以前曾在Java客户机上尝试过这一点,它确实成功地收到了响应

  google.maps.event.addListener(map, 'click', function(event) {
    var request = new XMLHttpRequest();
    request.open("POST", <MY URL>, true);
    request.onreadystatechange = function() {
       if (request.readyState == 4) {
                var resp = request.responseText;
                console.log(resp);
        }
    }

    request.send(null);
  });
在我的服务器代码中,我使用以下命令在HTTP响应中设置适当的头

setHeader("Access-Control-Allow-Origin", "*");

瞧,响应中返回了42K的数据

您正在使用哪个浏览器? 试用chrome,查看网络和控制台输出

我也有类似的头痛,因为我在做XDR请求。在FF上,似乎一切正常,返回了200代码,但在chrome上,您有更多信息,将看到“访问控制允许来源”错误


在服务器端,尝试设置“Access Control Allow Origin:*”以允许来自任何源页面的请求。

您正在使用哪个浏览器? 试用chrome,查看网络和控制台输出

我也有类似的头痛,因为我在做XDR请求。在FF上,似乎一切正常,返回了200代码,但在chrome上,您有更多信息,将看到“访问控制允许来源”错误


在服务器端,尝试设置“Access Control Allow Origin:*”以允许来自任何源页面的请求。

我看不到足够的信息。什么浏览器?发送的响应文本是什么?等您可能希望使用AJAX抽象。如果在
send()
方法的参数中使用实际字符串,而不是
null
,该怎么办?我不认为它必须有什么特别有意义的,但也许您的服务器端脚本正在寻找一个它没有得到的POST变量。只是一个想法。你能展示你的Java代码吗?(另外,您可能还应该测试状态和readyState。)尝试在浏览器中以正常HTTP请求的形式运行URL,如果没有得到任何响应,则调试Java(servlet)代码我的Java代码实际上是一个Wicket组件(但仍然可以归结为一个servlet)。我可以发布代码,但由于它与独立Java客户端一起工作,并且在将URL粘贴到浏览器中时得到了有效的响应,我认为问题出在我的Javascript上。我在这里看不到足够的信息。什么浏览器?发送的响应文本是什么?等您可能希望使用AJAX抽象。如果在
send()
方法的参数中使用实际字符串,而不是
null
,该怎么办?我不认为它必须有什么特别有意义的,但也许您的服务器端脚本正在寻找一个它没有得到的POST变量。只是一个想法。你能展示你的Java代码吗?(另外,您可能还应该测试状态和readyState。)尝试在浏览器中以正常HTTP请求的形式运行URL,如果没有得到任何响应,则调试Java(servlet)代码我的Java代码实际上是一个Wicket组件(但仍然可以归结为一个servlet)。我可以发布代码,但由于它与独立的Java客户端一起工作,并且在将URL粘贴到浏览器时得到了有效的响应,我认为问题出在我的Javascript上。客户端和服务器都是本地的。但我会用Chrome试试,看看会发生什么。马上!同样如此。谢谢有不同的方式发出XDR请求,无论是在同一个本地服务器上。客户端和服务器都是本地的。但我会用Chrome试试,看看会发生什么。马上!同样如此。谢谢有不同的方式发出XDR请求,无论是否在同一个本地服务器中。
setHeader("Access-Control-Allow-Origin", "*");