2012-01-16 17 views
9

AJAXを学んでいる間、私はこのコマンドを見つけました。 HTTPプロトコルである「xmlhttp.setRequestHeader();」とは何ですか?どのような状況で使用されていますか?

<script type="text/javascript"> 

     function insert(){ 
      if(window.XMLHttpRequest){ 
       xmlhttp = new XMLHttpRequest(); 
      }else{ 
       xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); 
      }; 

      xmlhttp.onreadystatechange = function(){ 
       if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
        document.getElementById('message').innerHTML = xmlhttp.responseText; 
       }; 
      }; 

      parameters = 'insert_text='+document.getElementById('insert_text').value; 

      xmlhttp.open('POST','ajax_posting_data.php',true); 
      xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
      xmlhttp.send(parameters); 
     }; 

    </script> 
+4

私はあなたがそのチュートリアルを捨て、jQueryを使うことをお勧めします。コードは不要なグローバル変数を作成するだけでなく、jQueryの場合よりもはるかに複雑です。テキストフィールドに '&'文字が含まれていると、クエリ文字列が壊れることになります。 – ThiefMaster

+3

docはここにあります:http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method – talnicolas

+6

opは、jQueryではなくネイティブJavaScriptを使用することを尋ねていました。なぜ、既存のソリューションを廃止するように指示するのですか?私は、ネイティブJavaScriptがどのように動作するかを学ぶことを薦めるので、jQueryを使用してトレードオフを理解し、よりインテリジェントな意思決定を行うことができます。とにかく、 "単にjQueryを使う"では、リクエストヘッダーの性質については説明しません。 – gregturn

答えて

14

:チュートリアルを作った男は、コマンド内のパラメータが何を意味するとそれがために使用されている...以下は、私はそれを使用したコードであるか、このコマンドを説明していません。そのプロトコルの一部は、要求ヘッダーの概念です。 xhrが発生すると、クライアントとサーバーの間でテキストが交換されます。リクエストヘッダーは、クライアントがサーバーに送信するテキストの一部です。

これはリクエストヘッダーを設定する方法です。ご覧の引数は

1))この場合、コンテンツタイプ
2(ヘッダ値を設定するためのヘッダです。 (この場合、x-www-form-urlencodedで

See this for more info.

+0

私はrequestHeadersが何であるかを知っていますが、jQueryを持たないアプリケーションでリクエストヘッダをプラグインする必要があるときに、この例が役に立ちました。 – gregturn

0

これは、フォームから送信されたURLエンコードされたデータを含むようにコンテンツタイプHTTPヘッダーを設定します。

3

それはまさにそれが言うことです。それは次のXMLHttpRequestの "ヘッダ"情報を設定します。

ヘッダーはほとんどキー/値のペアです。これは、進行中の要求のために「メタ」情報をターゲットサーバに送信するために使用されます。特定のインスタンスでは、この要求にどのコンテンツタイプが使用されているかをサーバーに伝えるために使用されます。

関連する問題