Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';无法从java服务器接收javascript XMLHttpRequest响应_Javascript_Java_Xmlhttprequest_Tcpserver - Fatal编程技术网

Can';无法从java服务器接收javascript XMLHttpRequest响应

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();

这是我的javascript代码

    <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");
        }
    }
  }
}