Maison > Article > interface Web > Une brève analyse des différences d'utilisation entre Jquery AJAX POST et GET
Cet article porte sur la différence entre AJAX POST et GET dans Jquery. Un résumé détaillé a été introduit. Les amis qui en ont besoin peuvent venir s'y référer. J'espère qu'il sera utile à tout le monde
1 : Les navigateurs d'accès GET pensent que c'est idempotent
. signifie qu'il n'y a qu'un seul résultat pour la même URL [cela signifie que toute la chaîne de l'URL correspond exactement]
Par conséquent, si la chaîne de l'URL ne change pas au cours de la seconde visite, le navigateur le supprimera directement
POST est considéré comme un accès changeant (le navigateur estime que la soumission du POST doit avoir changé)
Empêcher GET d'un accès idempotent juste derrière le URL Plus ? +new Date();, [En bref, cela rend la chaîne URL différente à chaque visite]
Ce principe doit également être suivi lors de la conception de pages WEB
2 : 1. Parlez de la différence entre Ajax Get et Post
Méthode Get :
Des données simples peuvent être transmises à l'aide de la méthode get, mais la taille est généralement limité à 1 Ko Ensuite, les données sont ajoutées à l'URL et envoyées (transmission d'en-tête HTTP), c'est-à-dire que le navigateur ajoute chaque élément de champ de formulaire et ses données à la fin du chemin de ressource dans la ligne de requête selon le format des paramètres de l'URL. Le point le plus important est qu'il sera mis en cache par le navigateur du client, afin que d'autres puissent lire les données du client, telles que le numéro de compte et le mot de passe, etc., à partir de l'historique du navigateur. Par conséquent, dans certains cas, la méthode get peut entraîner de graves problèmes de sécurité.
Méthode Post :
Lors de l'utilisation de la méthode POST, le navigateur envoie chaque élément de champ de formulaire et ses données au serveur Web en tant que contenu d'entité du message HTTP, plutôt que comme une adresse URL. Les paramètres sont transmis et la quantité de données transmises via POST est beaucoup plus importante que celle transmise via GET.
En bref, la méthode GET transmet une petite quantité de données, a une efficacité de traitement élevée et une faible sécurité, et sera mise en cache, alors que l'inverse est vrai pour POST.
Lors de l'utilisation de la méthode get, veuillez noter :
1 Pour les requêtes get (ou toute requête impliquant des paramètres de transmission d'URL), les paramètres transmis doivent d'abord être traités par la méthode encodeURIComponent. Exemple : var url = "update.php?username=" +encodeURIComponent(username) + "&content=" +encodeURIComponent
(content)+"&id=1" ;
Remarques lors de l'utilisation de la méthode Post :
1. Définissez le Context-Type de l'en-tête sur application/x-www-form-urlencode pour vous assurer que le serveur le sait. sont des variables de paramètre dans l'entité. Utilisez généralement XmlHttpRequestSetRequestHeader("Context-Type","application/x-www-form-urlencoded;") de l'objet . Exemple :
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
2 Les paramètres sont des paires clé-valeur correspondant au nom/valeur de chacun. Utilisez des esperluettes pour séparer les valeurs. Par exemple, var name=abc&sex=man&age=18 Notez que var name=update.php?
abc&sex=man&age=18 et var name=?abc&sex=man&age=18 sont. les deux sont écrits de la même manière. C'est faux ;
3. Les paramètres sont envoyés dans la méthode Send (paramètre), par exemple : xmlHttp.send(name); );
4. Serveur Le paramètre de requête du terminal fait la distinction entre Get et Post. S'il s'agit de la méthode get, alors $username = $_GET["username"]; S'il s'agit de la méthode post, alors $username = $_POST["username"];
AJAXCaractères tronqués Problème
Cause des caractères tronqués :
1. Le codage de caractères par défaut des données renvoyées par xtmlhttp est utf. -8. Si la page client est gb2312 ou d'autres données codées produiront des caractères tronqués
2. Le codage de caractères par défaut pour les données soumises par la méthode post est utf-8 Si les données codées côté serveur sont gb2312 ou autre. des données, des caractères tronqués seront produits
Les solutions sont :
1 Si le client utilise l'encodage gb2312, spécifiez l'encodage du flux de sortie sur le serveur<.>2. Le serveur et le client utilisent le codage utf-8
Remarque :Si vous avez appliqué la méthode ci-dessus et que vous renvoyez toujours du code tronqué, vérifiez si votre méthode est get. Pour les requêtes get (ou tout ce qui implique des paramètres de transmission d'URL), les paramètres transmis doivent d'abord être traités par la méthode encodeURIComponent. S'ils ne sont pas traités par encodeURIComponent, des caractères tronqués seront également générés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!