【问题标题】:Responding to AJAX request from a Java Socket响应来自 Java Socket 的 AJAX 请求
【发布时间】:2012-04-24 04:05:30
【问题描述】:

我正在尝试让一个简单的 Java 服务器响应 XmlHttpRequest,但我不确定如何。至此,服务器上的socket得到了浏览器的请求。获取套接字输出流后,服务器对其进行写入,然后关闭所有连接。还有更多的东西吗?我假设您需要一个标头来正确响应请求,如果是这样,该标头是什么。谢谢!

这就是我现在正在做的事情。但是,我似乎无法让浏览器接受该消息。

编辑: 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);

【问题讨论】:

    标签: java javascript ajax sockets xmlhttprequest


    【解决方案1】:

    所有 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/

    【讨论】:

      【解决方案2】:

      为了让浏览器理解服务器的响应,根据HTTP Protocol指定的Response格式应该是有效的。除了实际响应正文之外,唯一需要的是状态行,如果请求成功,通常是 HTTP/1.1 200 OK

      额外的HTTP Headers,例如Content-LengthContent-Type可以帮助浏览器更有效地处理响应,但是如果你开始设置很多这些,你基本上是在实现你自己的HTTP服务器,我建议使用@ 987654323@ 或其他现成的东西,然后再沿着这条路线走。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-23
        • 1970-01-01
        • 2012-01-08
        • 2013-11-29
        • 2012-10-22
        • 1970-01-01
        相关资源
        最近更新 更多