web-dev-qa-db-ja.com

「xmlhttp.setRequestHeader();」とはそしてそれはどのような状況で使用されますか?

AJAXの学習中にこのコマンドに遭遇しました。チュートリアルを作成した人はこのコマンドを説明しませんでした。コマンド内のパラメーターは何を意味し、それは何のために使用されますか?以下は私がそれを使用したコードです:

<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>
18
oFca

HTTPはプロトコルです。そのプロトコルの一部は、要求ヘッダーの概念です。 xhrが発生すると、クライアントとサーバー間でテキストが交換されます。要求ヘッダーは、クライアントがサーバーに送信するテキストの一部です。

これは、要求ヘッダーを設定する方法です。あなたが見る引数は

1)設定するヘッダー(この場合、Content-type
2)ヘッダー値。 (この場合、x-www-form-urlencoded

詳細はこちらをご覧ください。

19
hvgotcodes

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

ヘッダーは、ほとんどキーと値のペアです。進行中のリクエストのために「メタ」情報をターゲットサーバーに送信するために使用されます。特定のインスタンスでは、このリクエストに使用されるコンテンツタイプをサーバーに通知するために使用されます。

3
jAndy

HTTPリクエストは、セットルーチン(「プロトコル」-ここ[〜#〜] h [〜#〜]yper[〜#〜] t [〜#〜]ext[〜#〜] t [〜 #〜]ransfer[〜#〜] p [〜#〜]rotocol)などの目的でデータの送信、データの返信の要求、以前に送信されたデータの更新など。

ヘッダーは基本的に、HTTPリクエストの本文に含まれるデータに関する情報です。その目的は、リクエストを受信したマシンに、リクエストの本文に含まれるデータのタイプ、そのフォーマット、使用する言語、Cookieを設定する場合は、日付、ホストマシンなどを伝えることです。

HTTPリクエストには複数のヘッダーを含めることができ、各ヘッダーには「名前」コンポーネントと「値」コンポーネントがあります。ウェブページでは次のようになります

<meta name="........" content="............."/>

要素内のWebページの上部のすぐ下にあります。

JavaScript関数内からHTTPリクエストを送信できるようにするために、コードで次のように新しいXMLHttpRequestオブジェクトを作成します

xmlhttp = new XMLHttpRequest();

この新しい空のオブジェクトに、データを追加する予定です。その名前にもかかわらず、XMLHttpRequestは、XML以外の多くの形式でデータを送信することもできます。 HTMLコード、テキスト、JSONなど。この例では、各データ名は「=」文字で値から分離され、各データ/値のペアは「&」文字で次のペアから分離されます。この種類のフォーマットは、URLエンコーディングと呼ばれます。

HTTPリクエストボディ内のデータがどのようにエンコードされるかを受信側のコンピュータに通知する必要があります。これを伝える 標準ヘッダー があり、これはメソッドsetRequestHeader(..)を介してリクエストに追加されます。このメソッドは、ヘッダー名とヘッダーの値の2つのパラメーターを使用します。このすべての操作はラインで達成されます

xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

このsetRequestHeader(..)メソッドをリクエストに適用する必要がありますafterリクエストはopen(...)メソッドで特徴付けられますが、before最終的なリクエストはsend(。)メソッドで送信されます。

open(...)メソッドは以下を定義します:(1)HTTPリクエストのタイプ。 GET/POST/PUTなど; (2)このリクエストの処理スクリプトを含むWebページ。バックエンドデータベースに適切なクエリを実行する.phpまたは.jsファイル。 (3)リクエストダイナミクスの性質。非同期リクエストには値「true」が割り当てられ、同期リクエストには「false」が割り当てられます。

send(。)メソッドは、リクエストの本文内で送信されるデータをアタッチします。この場合、変数は「parameters」と呼ばれます。

どの状況setRequestHeader(..)が使用されているかという幅広い質問については、ほとんどのHTTP要求状況で使用されていると言えます。しかし 一部のタイプのデータ HTTPリクエストの本文に追加されたデータは、「Content-Type」ヘッダーのデフォルト設定を呼び出します。

1
Trunk

フォームから送信されたURLエンコードされたデータを含むようにContent-type HTTPヘッダーを設定します。

0
JanL