Can';无法从java服务器接收javascript XMLHttpRequest响应
这是我的javascript代码Can';无法从java服务器接收javascript XMLHttpRequest响应,javascript,java,xmlhttprequest,tcpserver,Javascript,Java,Xmlhttprequest,Tcpserver,这是我的javascript代码 <script type="text/javascript"> startingListener(); function startingListener() { setInterval(function(){ var xhr = new XMLHttpRequest(); xhr.open("GET", "http://localhost:32081/", false); xhr.send();
<script type="text/javascript">
startingListener();
function startingListener() {
setInterval(function(){
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://localhost:32081/", false);
xhr.send();
var result = xhr.response;
console.log(result);
}
}, 100);
}
</script>
我只想接收JS中的应答字符串并进一步处理它
所以,当我运行服务器和JS时,它们连接在一起,我在IDE中接收到JS的send()
在那个之后,我在Java的控制台中看到了begin和done收到的消息,但在浏览器控制台中,我并没有看到任何答案和刚刚处理的脚本。我做错了什么
感谢您的帮助您的客户端代码缺少状态更改处理程序,并且使用100毫秒的setInterval在服务器上非常繁重。这里有一个更好的JS。JAVA问题是另一个问题。唐宁街选民:你有什么评论吗
function listener() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://localhost:32081/", false);
xhr.onreadystatechange = function () {
if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
console.log(xhr.responseText);
}
}
}
listener();
如果您想重复调用侦听器,可以这样做
function listener() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://localhost:32081/", false);
xhr.onreadystatechange = function () {
if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
if (xhr.responseText != "done") {
console.log("server still busy");
setTimeout(listener,1000); // repeat the call
}
else {
console.log("finally done");
}
}
}
}
您在浏览器中根本没有收到任何警报?您是否有任何浏览器开发人员工具控制台错误?确实要每秒发送10个同步请求吗?是
http://localhost:32081/
与网页的来源相同吗?说真的,浏览器控制台中有错误吗?我看不出您的服务器如何创建浏览器所需的Http响应。@ScaryWombat-这不是outToClient.println
所能做到的吗?(我假设,我对java一无所知)-尽管重新阅读代码,我明白你的意思。。。这里面根本没有http,没有错误,什么都没有。控制台很干净。我想这只是因为我发送了同步请求。没有。没有Http响应头或任何东西。它的状态怎么可能是200?不是DV,而是服务器代码中生成的Http在哪里?它的状态怎么可能是200?这是另一个问题。我只处理JS:)谢谢,但我对服务器端很感兴趣。因为JS端不是我写的,它非常适合C代码,我看不出来。但是你有两个问题。我搞定了一个否决票是怎么回事?如果你有什么要说的,就发表评论。除非设置readystatechange处理程序,否则OP不会看到任何结果
function listener() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://localhost:32081/", false);
xhr.onreadystatechange = function () {
if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
if (xhr.responseText != "done") {
console.log("server still busy");
setTimeout(listener,1000); // repeat the call
}
else {
console.log("finally done");
}
}
}
}