Heim >Backend-Entwicklung >PHP-Tutorial >Der Unterschied zwischen Jquery AJAX POST und GET
1: Der GET-Zugriffsbrowser betrachtet es als idempotent
bedeutet, dass es nur ein Ergebnis für dieselbe URL gibt [dasselbe bedeutet, dass die gesamte URL-Zeichenfolge genau übereinstimmt]
Wenn also auf die URL-Zeichenfolge zugegriffen wird zum zweiten Mal Wenn keine Änderung vorliegt, nimmt der Browser direkt das Ergebnis des ersten Besuchs heraus
POST wird als sich ändernder Besuch betrachtet (der Browser geht davon aus, dass sich die Übermittlung von POST geändert haben muss)
GET verhindern Der idempotente Zugriff wird nach der URL hinzugefügt? +new Date();, [Kurz gesagt, es macht die URL-Zeichenfolge bei jedem Besuch anders]
Dieses Prinzip sollte auch beim Entwerfen von WEB-Seiten befolgt werden
2: 1. Sprechen Sie über Ajax Der Unterschied zwischen Get und Post
Get-Methode:
Mit der Get-Methode werden einfache Daten übertragen, die Größe ist jedoch im Allgemeinen auf 1 KB begrenzt. Die Daten werden an die URL angehängt und gesendet (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, aus dem Browserverlauf lesen können. Daher kann die get-Methode in manchen Fällen schwerwiegende Sicherheitsprobleme verursachen.
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 sie als Parameter der URL zu übergeben Adresse Verwendung Die von POST übertragene Datenmenge ist viel größer als die von GET übertragene.
Kurz gesagt: Die GET-Methode überträgt eine kleine Datenmenge, weist eine hohe Verarbeitungseffizienz und geringe Sicherheit auf und wird zwischengespeichert, während bei POST das Gegenteil der Fall ist.
Hinweise zur Verwendung der Get-Methode:
1 Für Get-Anfragen (oder alle übergebenen URL-Parameter) müssen die übergebenen Parameter zuerst von der encodeURIComponent-Methode verarbeitet werden. Beispiel: var url = "update. php ?username=" +encodeURIComponent(username) + "&content=" +encodeURIComponent
(content)+"&id=1" ;
Hinweis bei Verwendung der Post-Methode:
1. Setzen Sie den Kontexttyp des Headers auf application/x-www-form-urlencode, um sicherzustellen, dass der Server weiß, dass die Entität Parametervariablen enthält -form- urlencoded;"). Beispiel:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
2. Die Parameter sind jeweils Name/Wert Verwenden Sie kaufmännische Und-Zeichen, um die Werte zu trennen. Beachten Sie beispielsweise, dass var name=update.php?
abc&sex=man&age=18 und var name=?abc&sex=man&age=18 sind beide auf die gleiche Weise geschrieben.
3. Parameter werden in der Send-Methode (Parameter) gesendet, zum Beispiel: xmlHttp.send(name); );
4. Server Die Endanforderungsparameter unterscheiden Get und Post. Wenn es die Get-Methode ist, dann $username = $_GET["username"]; Wenn es die Post-Methode ist, dann $username = $_POST["username"];
AJAX-Problem mit verstümmeltem Code
Gründe für die Generierung von verstümmeltem Code:
1. Die Standardzeichenkodierung der von xtmlhttp zurückgegebenen Daten ist utf-8. Wenn die Clientseite gb2312 oder andere codierte Daten ist, werden verstümmelte Zeichen erzeugt . Die Standardzeichenkodierung der von der Post-Methode übermittelten Daten ist utf -8. Wenn der Client gb2312 ist, werden verstümmelte Daten generiert codiert, geben Sie die Ausgabestream-Codierung auf dem Server an
2. Serverseitig und Clients verwenden alle UTF-8-Codierung
gb2312:header('Content-Type:text/html;charset=GB2312') ;
utf8:header('Content-Type:text/ html;charset=utf-8');
Hinweis: Wenn Sie die obige Methode befolgt haben und immer noch verstümmelte Zeichen zurückgeben, überprüfen Sie dies Unabhängig davon, ob es sich bei Ihrer Methode um Get-Anfragen handelt (oder um URL-Übergabeparameter), müssen die übergebenen Parameter zuerst von der encodeURIComponent-Methode verarbeitet werden. Wenn sie nicht von encodeURIComponent verarbeitet werden, werden auch verstümmelte Zeichen generiert