响应来自 Java 套接字的 AJAX 请求
Responding to AJAX request from a Java Socket
我正在尝试让一个简单的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);
所有 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/
为了让浏览器理解服务器的响应,它应该根据 HTTP 协议中指定的Response
格式有效。除了实际的响应正文之外,唯一需要的是状态行,如果请求成功,通常HTTP/1.1 200 OK
。
其他HTTP标头(如Content-Length
或Content-Type
)可以帮助浏览器更有效地处理响应,但是如果您开始设置大量这些标头,则基本上是在实现自己的HTTP服务器,我建议您在沿着这条路线之前使用Jetty或其他现成的东西。
相关文章:
- ajax请求的顺序总是不同的
- 从ajax请求中获取javascript对象
- Ajax请求文档就绪会导致jquery加载缓慢
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- JavaScript代码未正确检查ajax请求
- "日期“;AJAX请求返回的类型值未定义
- 在等待ajax请求时显示微调器并禁用页面
- 跨域ajax请求
- Ajax请求返回空的数据字符串,但首先得到了正确的数据
- Javascript-如何让脚本与Ajax请求的数据一起运行
- ajax请求成功,但可以'我看不到我的数据
- 如何将给定的curl命令复制为jquery ajax请求
- 为什么我能够从javascript控制台发送跨域ajax请求
- 一台特定计算机的Ajax请求数据未定义/失败
- 获取ajax请求的请求头
- 原型Ajax请求参数为嵌套json
- 可以't从AJAX请求中筛选数据
- jQuery Mobile Collapse上的AJAX请求
- 暂停函数执行流程,直到ajax请求完成