Heim >Backend-Entwicklung >PHP-Tutorial >Der Unterschied zwischen get-Methode und post-Methode in Ajax
1. Der grundlegende Unterschied zwischen get() und post()
1. Get fügt die Parameterdatenwarteschlange der URL hinzu, auf die das ACTION-Attribut des übermittelten Formulars verweist, und die Werte entsprechen zu jedem Feld im Formular, das in der URL zu sehen ist. Post verwendet den HTTP-Post-Mechanismus, um jedes Feld im Formular und seinen Inhalt im HTML-HEADER zu platzieren und an die URL-Adresse zu übertragen, auf die das ACTION-Attribut verweist. Benutzer können diesen Vorgang nicht sehen.
2. Für die Get-Methode verwendet die Serverseite Request.QueryString, um den Wert der Variablen abzurufen. Für die Post-Methode verwendet die Serverseite Request.Form, um die übermittelten Daten abzurufen. Mit Request können Parameter auf beide Arten abgerufen werden.
3. Die von get übertragene Datenmenge ist gering und darf nicht größer als 2 KB sein. Die auf dem Postweg übermittelten Datenmengen sind relativ groß und unterliegen grundsätzlich keiner Beschränkung. Aber theoretisch ist es von Server zu Server unterschiedlich.
4. Get hat eine sehr niedrige Sicherheit, während Post eine hohe Sicherheit hat.
5.412d5786ff2d0c10023650eaf264474e ist dasselbe wie 4d1fcb0ca7c733fbcb929eab61bf6a5e , das heißt, wenn die Methode get ist, wird die Parameterliste am Ende der Aktionsseite ignoriert und 207ffcbabfe9e526ee1296c52f760a50 ;form method="post " action="a.asp"> ist anders.
2. Sprechen Sie über den Unterschied zwischen Ajax Get und Post
1. Get-Methode
Verwenden Sie die Get-Methode, um einfache Daten zu übertragen, aber die Größe ist im Allgemeinen auf 1 KB begrenzt Daten werden an die URL-Senden angehängt (HTTP-Header-Übertragung), das heißt, der Browser hängt jedes Formularfeldelement und seine Daten im Format von URL-Parametern an das Ende des Ressourcenpfads in der Anforderungszeile an. Das Wichtigste ist, dass es vom Browser des Kunden zwischengespeichert wird, sodass andere die Daten des Kunden, wie Kontonummer und Passwort usw., aus dem Browserverlauf lesen können. Daher kann die get-Methode in manchen Fällen schwerwiegende Sicherheitsprobleme verursachen.
Ajax-Sendeanforderung: Wenn es sich um eine Get-Anfrage handelt, Sendeparameter (Parameter): muss null oder xhr.send(); sein.
Es ist nicht erforderlich, xhr.setRequestHeader(header, value) für get request
Hinweis: Wenn der Parameter xhr.send(); nicht leer ist, wird er automatisch in die Post-Request-Methode konvertiert. Sie können die Anforderungsmethode über request.getMethod( abrufen. ); Methode
Beispiel:
function getAjax(){ //获取xhr对象 var xhr = getXhr(); //规定请求类型 xhr.open("get","main.jsp?username=123",true); xhr.onreadystatechange = function (){ //判读是否处理完毕 if(xhr.readyState==4){ //判读服务器是否处理成功! if(xhr.status==200){ alert(xhr.responseText); } } } }
Beachten Sie bei Verwendung der Get-Methode bitte
(1) Bei Get-Anfragen (oder allen beteiligten URL-Übertragungsparametern) die übergebenen Parameter muss zuerst die
encodeURIComponent-Methodenverarbeitung durchlaufen. Beispiel: var url = "update.php?username=" +encodeURIComponent(username) + "&content=" +encodeURIComponent
(content)+" &id=1" ;
2.Post-Methode:
Bei Verwendung der POST-Methode sendet der Browser jedes Formularfeldelement und seine Daten als Entitätsinhalt der HTTP-Nachricht an den Webserver, anstatt Übergabe als Parameter der URL-Adresse mit der POST-Methode. Die Datenmenge ist viel größer als die mit der GET-Methode übertragene Datenmenge.
Anfrage senden: Wenn es sich um einen Post-Request-Sendeparameter handelt : Der Parameter kann null sein oder
xhr.send() |Send (mit Parametern) Post-Anfrage muss xhr.setRequestHeader(header,value)
Instance:
function postAjax(){ //获取xhr对象 var xhr = getXhr(); //规定请求类型 xhr.open("post","main.jsp",true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") xhr.send("username=345&pass=123"); xhr.onreadystatechange = function (){ //判读是否处理完毕 if(xhr.readyState==4){ //判读服务器是否处理成功! if(xhr.status==200){ alert(xhr.responseText); } } } }setzen
Bei Verwendung der Post-Methode beachten Sie bitte Folgendes:
(1). Setzen Sie den Kontexttyp des Headers auf application/x-www-form-
urlencode, um sicherzustellen, dass der Server weiß, dass es welche gibt Parametervariablen in der Entität verwenden normalerweise den
SetRequestHeader( „Context-Type“, „application/x-www-form-urlencoded;“). Beispiel:
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
(2). Die Parameter sind Schlüssel-Wert-Paare entsprechend Name/Wert. Jedes Wertepaar wird durch ein kaufmännisches Und getrennt. Beispiel: var name=abc&sex=man
&age=18 Beachten Sie, dass var name=update.php?abc&sex=man&age=18 und var name=?abc&sex =man
Die Schreibweise von &age=18 ist falsch.
(3) Parameter werden in der Send (Parameter)-Methode gesendet, zum Beispiel: xmlHttp.send(name); get-Methode, direkt xmlHttp.send(null );
(4). Serverseitige Anforderungsparameter unterscheiden zwischen Get und Post. Wenn es die get-Methode ist, dann $username = $_GET["username"]; Wenn es die post-Methode ist, dann $username = $_POST["username"];
Kurz gesagt, die GET-Methode wird zum Übertragen verwendet. Die Datenmenge ist gering, die Verarbeitungseffizienz ist hoch, die Sicherheit ist gering und sie werden zwischengespeichert, während bei POST das Gegenteil der Fall ist.
9b21ee6b58e97765e2a3d44fcda3f6db