【发布时间】:2017-01-02 17:25:29
【问题描述】:
这是我的 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>
还有我在 Java 上的服务器
public static void main (String... args) throws IOException, Exception {
String clientSentence;
ServerSocket welcomeSocket = new ServerSocket(32081);
while(true)
{
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
PrintWriter outToClient = new PrintWriter(connectionSocket.getOutputStream(), true);
clientSentence = inFromClient.readLine();
System.out.println("Received: " + clientSentence);
System.out.println("begin");
outToClient.println("fu");
System.out.println("Received: done");
}
}
我只想在 JS 中接收答案字符串并进一步使用它。
所以当我运行服务器并运行 JS 时,它们已连接,并且我在 IDE 中从 JS 接收到 send()
之后,我在 Java 控制台中看到 begin 和 done 收到,但在浏览器控制台中我没有看到任何答案和脚本刚刚处理。我做错了什么?
感谢您的帮助
【问题讨论】:
-
您在浏览器中根本没有收到任何警报?您是否收到任何浏览器开发人员工具控制台错误?您确定要每秒发送 10 个同步请求吗?
http://localhost:32081/与网页的来源相同吗?严重的是,浏览器控制台中是否有任何错误? -
我看不到您的
server是如何创建浏览器需要的 Http 响应的。 -
@ScaryWombat - 这不是
outToClient.println会做的吗? (我假设,我对 java 一无所知) - 虽然,重新阅读代码,我明白你的意思......根本没有 http,有没有 -
没有错误,什么都没有。控制台刚刚清洁。我认为只是因为我发送了同步请求。
-
不是普通的普通插座。没有 Http 响应标头或任何东西。怎么会有200的状态?
标签: javascript java xmlhttprequest tcpserver