2012-04-11 15 views
1

私は単純なJavaサーバをXmlHttpRequestに応答させようとしていますが、どうすればよいかわかりません。今のところ、サーバー上のソケットはブラウザの要求を受け取ります。ソケット出力ストリームを取得した後、サーバーはそれを書き込み、すべての接続を閉じます。これ以上何かありますか?私はあなたが正しくヘッダーが必要な場合、要求に正しく応答するためにヘッダーが必要であると仮定します。ありがとう!JavaソケットからのAJAX要求への応答

ここは私が今やっていることです。しかし、私はブラウザがメッセージを受け入れるように見えることはできません。

編集: 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を:HTTPヘッダーが必要とされているので、

xmlhttp.open("POST","http://10.0.2.15:1024/password?url=" + site, false); 
    xmlhttp.send(null); 

答えて

1

サーバの応答を理解するためのブラウザのためには、それは応じて有効である必要がありhttp://en.wikipedia.org/wiki/List_of_HTTP_header_fields

公式スペックについてはこちらを参照してください。 HTTP Protocolで指定されているResponseフォーマットに変換します。実際の応答本体に加えて必要なのは、要求が成功した場合は通常HTTP/1.1 200 OKのステータス行です。

などContent-LengthContent-Typeなどの追加HTTP Headersがより効率的にブラウザプロセスに応答を助けることができますが、これらの多くの設定を開始場合は、基本的には、独自のHTTPサーバを実装しようとしていると私はJettyまたはオフに何か他のものを使用してお勧めしますこのルートを降りる前に棚に置いてください。

関連する問題