Frage

Ich bin beim Erlernen von AJAX auf diesen Befehl gestoßen.Der Typ, der das Tutorial erstellt hat, hat diesen Befehl nicht erklärt. Was bedeuten die Parameter im Befehl und wofür wird er verwendet? Unten ist der Code, in dem ich ihn verwendet habe:

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

War es hilfreich?

Lösung

HTTP ist ein Protokoll.Teil dieses Protokolls ist das Konzept der Anforderungsheader.Wenn ein xhr auftritt, wird Text zwischen dem Client und dem Server ausgetauscht.Anforderungsheader sind Teil des Textes, den der Client an den Server sendet.

Auf diese Weise können Sie die Anforderungsheader festlegen.Die angezeigten Argumente sind

1) der zu setzende Header (in diesem Fall Inhaltstyp )
2) der Header-Wert.(in diesem Fall x-www-form-urlencoded )

Weitere Informationen finden Sie hier.

Andere Tipps

Es ist genau das, was es sagt.Es wird eine "Header" -Information für den nächsten XMLHttpRequest gesetzt.

Ein Header ist so ziemlich ein Schlüssel / Wert-Paar.Es wird verwendet, um "Meta" -Informationen für die laufende Anforderung an den Zielserver zu übertragen.In Ihrem speziellen Fall wird dem Server mitgeteilt, welcher Inhaltstyp für diese Anforderung verwendet wird.

HTTP-Anforderungen sind Nachrichten, die gemäß einer festgelegten Routine (ein 'Protokoll') von einem Computersystem an ein anderes weitergeleitet werden - hier H yper T ext T ransfer P rotocol), um beispielsweise Daten zu senden, Daten zurückzusenden, zuvor gesendete Daten zu aktualisieren usw.

Ein Header ist im Grunde eine Information über die Daten im Hauptteil der HTTP-Anforderung. Der Zweck besteht darin, dem Computer, der die Anforderung empfängt, mitzuteilen, welche Art von Daten im Hauptteil der Anforderung enthalten sind, welche Formatierung, welche Sprache verwendet wird, um ein Cookie zu setzen, welches Datum, welcher Hostcomputer usw.

Es kann mehr als ein Header in eine HTTP-Anforderung eingefügt werden, und jeder Header hat eine 'Name'- und eine' Wert'-Komponente. Auf Webseiten sehen sie aus wie

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

und Sie finden sie direkt unter dem oberen Rand der Webseite innerhalb des Elements.

Damit Benutzer HTTP-Anforderungen innerhalb einer JavaScript-Funktion senden können, erstellen wir ein neues XMLHttpRequest-Objekt, genau wie Ihr Code dies mit tut

xmlhttp = new XMLHttpRequest();

Zu diesem neuen leeren Objekt möchten Sie Daten hinzufügen. Trotz seines Namens ermöglicht XMLHttpRequest auch das Senden von Daten in einer Reihe anderer Formate als XML, z. HTML-Code, Text, JSON usw. In Ihrem Beispiel wird jeder Datenname durch ein "=" Zeichen von seinem Wert getrennt, und jede Daten- / Wertepaarung wird durch ein "&" Zeichen von der nächsten Paarung getrennt. Diese Art der Formatierung wird als URL-Codierung bezeichnet.

Wir müssen dem empfangenden Computer mitteilen, wie die Daten im HTTP-Anforderungshauptteil codiert sind. Es gibt einen Standardheader , der dies übermittelt und der Anforderung über die Methode hinzugefügt wird setRequestHeader (..) . Diese Methode verwendet zwei Parameter, den Headernamen und den Headerwert. All diese Operationen werden in der Zeile erreicht

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

Diese setRequestHeader (..) -Methode muss auf die Anforderung angewendet werden, nachdem die Anforderung mit open (...) gekennzeichnet ist Methode, aber vor der endgültigen Anforderung wird mit der Methode send (.) gesendet.

Die Methode open (...) definiert: (1) den Typ der HTTP-Anforderung, z. GET / POST / PUT usw.; (2) die Webseite, die das Bearbeitungsskript für diese Anforderung enthält, z. eine .php- oder .js-Datei, die die entsprechende Abfrage an die Back-End-Datenbank durchführt; und (3) die Art der Anforderungsdynamik, z. asynchronen Anforderungen wird der Wert 'true' zugewiesen, synchronen Anforderungen wird 'false' zugewiesen.

Mit der Methode send (.) werden die zu sendenden Daten im Hauptteil der Anforderung angehängt, in Ihrem Fall die Variable 'parameters'.

Bei Ihrer umfassenderen Frage, welche Situationen setRequestHeader (..) verwendet werden, würde ich sagen, dass es in den meisten HTTP-Anforderungssituationen verwendet wird. einige Arten von Daten wurden dem Text hinzugefügt Rufen Sie bei einer HTTP-Anforderung eine Standardeinstellung für den Header 'Content-Type' auf.

Legt fest, dass der HTTP-Header vom Inhaltstyp URL-codierte Daten enthält, die von einem Formular gesendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top