我正在尝试让一个简单的java服务器响应XmlHttpRequest,但我不知道如何。截至目前,服务器上的套接字获取浏览器的请求。获取套接字输出流后,服务器会写入它,然后关闭所有连接。还有更多的东西吗?我假设您需要一个标头来正确响应请求,如果是这样,那个标头会是什么。谢谢!
这就是我现在正在做的事情。但是,我似乎无法让浏览器接受该消息。
编辑: Java服务器代码:
private String HEADER = "HTTP/1.1 200 OK\n" +
"Cache-Control: private\n" +
"Content-Type: text/html; charset=utf-8\n" +
"Expires: Sun, 21 Feb 2100 20:39:08 GMT\n" +
"Server: Microsoft-IIS/7.5\n" +
"Date: Sun, 21 Apr 2012 20:39:07 GMT\n" +
"Connection: close\n" +
"Content-Length: 10\n";
browserWriter =
new PrintWriter(
browser.getOutputStream(),true);
while((data = browserReader.readLine()) != null) {
if (data.indexOf("POST") != -1) {
/* TODO TEST - TAKE OUT */
browserWriter.println(HEADER + "APPLESAUSE");
browserWriter.close();
browserReader.close();
browser.close();
return;
使用Javascript:
xmlhttp.open("POST","http://10.0.2.15:1024/password?url=" + site, false);
xmlhttp.send(null);
答案 0 :(得分:2)
所有XmlHTTPRequest都需要HTTP响应,因此需要HTTP头。一旦给出响应,就可以关闭连接。这基本上只是作为一个Web服务器。
一些HTTP标头字段:http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
请参阅此处了解官方规范:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
这里有一个不错的教程:http://net.tutsplus.com/tutorials/other/http-headers-for-dummies/
答案 1 :(得分:1)
要让浏览器了解服务器的响应,它应该根据HTTP Protocol中指定的Response
格式有效。除了实际的响应主体之外,唯一需要的是状态行,如果请求成功,通常为HTTP/1.1 200 OK
。
Content-Length
或Content-Type
等其他HTTP Headers可以帮助浏览器更有效地处理响应,但如果您开始设置大量这些,则基本上是在实现自己的HTTP服务器和我建议在沿着这条路线走下去之前使用Jetty或其他东西。