我正在使用Javascript函数向Java servlet发送请求,并且servlet将内容类型设置为“text / plain”的响应写入。 我已经使用Firebug跟踪了这一点,并且request.responseText始终为null,即使请求以状态200(OK)完成。 为什么responseText为null?
我之前尝试过使用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);
});
更新:
根据给出的答案中的建议,我使用了Chrome,并查看了Javascript控制台,我注意到以下错误
XMLHttpRequest cannot load http://localhost:8080/... Origin null is not allowed by Access-Control-Allow-Origin.
在我的服务器代码中,我使用以下内容在HTTP响应中设置适当的标头
setHeader("Access-Control-Allow-Origin", "*");
瞧 - 42K的数据在回复中按预期返回!
答案 0 :(得分:1)
您使用的是哪种浏览器? 尝试使用chrome并查看网络和控制台输出。
由于我正在做XDR请求,我有类似的麻烦。在FF上似乎都是正确的,并且返回了200个代码但是使用chrome有更多信息,并且会看到“Access-Control-Allow-Origin”错误。
在服务器端尝试设置“Access-Control-Allow-Origin:*”以允许来自任何源页面的请求。