Maison >interface Web >Questions et réponses frontales >Quelle est la différence entre post et get in ajax request ?
Différence : 1. Get ajoute la file d'attente de données de paramètres à l'URL pointée par l'attribut ACTION du formulaire soumis, tandis que post utilise le mécanisme "HTTP post" pour placer chaque champ du formulaire et son contenu dans le "HTML HEADER " et transmettez-le ensemble. Accédez à l'adresse URL pointée par l'attribut ACTION ; 2. En mode get, le côté serveur utilise "Request.QueryString" pour obtenir la valeur de la variable. Pour le mode post, le côté serveur utilise " Request.Form" pour obtenir les données soumises.
L'environnement d'exploitation de cet article : système Windows10, version javascript1.8.5&&html5, ordinateur Dell G3.
1. Get ajoute la file d'attente de données de paramètres à l'URL pointée par l'attribut ACTION du formulaire soumis. La valeur correspond à chaque champ du formulaire un à un. un, qui peut être vu dans l'URL arriver. Post utilise le mécanisme de publication HTTP pour placer chaque champ du formulaire et son contenu dans l'EN-TÊTE HTML et le transmettre à l'adresse URL pointée par l'attribut ACTION. Les utilisateurs ne peuvent pas voir ce processus.
2. Pour la méthode get, le côté serveur utilise Request.QueryString pour obtenir la valeur de la variable. Pour la méthode post, le côté serveur utilise Request.Form pour obtenir les données soumises. Les paramètres des deux manières peuvent être obtenus à l’aide de Request.
3. La quantité de données transmises par get est faible et ne peut pas dépasser 2 Ko. La quantité de données transmises par courrier est relativement importante et est généralement illimitée par défaut. Mais en théorie, cela varie d'un serveur à l'autre.
4. La sécurité d'obtention est très faible et la sécurité de publication est élevée.
5. et sont identiques, c'est-à-dire que la liste des paramètres en fin de page d'action sera ignorée mais ils sont différents ;
De plus
La requête Get a les caractéristiques suivantes : elle ajoutera des données à l'URL et les transmettra au serveur de cette façon, généralement en utilisant un point d'interrogation ? Représente la fin de l'adresse URL et le début des paramètres de données. Chaque paramètre de données des paramètres suivants apparaît sous la forme de "nom=valeur", et les paramètres sont distingués par un connecteur &.
La requête de publication présente les caractéristiques suivantes : les données sont placées dans le corps HTTP et elles sont organisées de plusieurs manières, y compris la méthode de connexion & et la méthode de séparation. Elle peut masquer les paramètres et transférer de grandes quantités de données, ce qui. est plus pratique.
En bref : lorsque nous soumettons un formulaire, nous utilisons généralement post. Lorsque nous souhaitons transférer un fichier de données plus volumineux, nous devons utiliser post. Lorsque la valeur transmise doit uniquement être en mode paramètre (la valeur ne dépasse pas 2 Ko), utilisez la méthode get.
L'utilisation des deux soumissions ajax est donc naturellement claire.
Élargir les connaissances :
Alors, comment choisir de recevoir et de publier ?
Le but de la requête get est de donner au serveur certains paramètres pour obtenir la liste du serveur Par exemple : list.aspx?page=1, ce qui signifie obtenir les données sur la première page
Si. l'appel consiste à récupérer les données sur le serveur, puis en utilisant get, une autre chose à noter est que si la valeur à récupérer change avec le temps et le processus de mise à jour, vous devez ajouter un nombre aléatoire ou un horodatage à l'appel get afin que les appels suivants n'utiliseront pas la valeur invalide précédente. Par rapport à la publication, get est plus simple et plus rapide et fonctionne dans la plupart des situations.
Le but de la requête de publication est d'envoyer certains paramètres au serveur
Les fichiers cache ne peuvent pas être utilisés (mise à jour des fichiers ou des bases de données sur le serveur), utilisez post
pour envoyer une grande quantité de données au serveur (post n'a pas de limite de données), lorsque vous utilisez post
pour envoyer une entrée utilisateur contenant des caractères inconnus, post est plus stable et fiable que get
Nous savons que le but de get est d'obtenir des informations simplement comme son nom. Il est conçu pour afficher les informations sur la page que vous souhaitez lire. Le navigateur mettra en mémoire tampon le résultat de l'exécution de la requête get. Si la même requête get est émise à nouveau, le navigateur affichera le résultat mis en mémoire tampon au lieu de réexécuter l'intégralité de la requête. Ce processus est différent du traitement du navigateur, mais il est intentionnellement conçu pour rendre les appels plus efficaces. L'appel get récupérera les données à afficher sur la page. Les données ne seront pas modifiées sur le serveur, vous obtiendrez donc les mêmes résultats lorsque vous demanderez à nouveau les mêmes données.
La méthode post doit être utilisée lorsque les informations du serveur doivent être mises à jour. Par exemple, si un appel modifie les données stockées sur le serveur, les résultats renvoyés par deux post-appels identiques peuvent être complètement différents car la valeur du deuxième post-appel est différente de la valeur du premier appel et a mis à jour certaines de ces valeurs. L'appel post récupère généralement la réponse du serveur plutôt que de conserver un cache de la réponse précédente.
get request
oBtn.onclick = function() { var xhr = null; try { xhr = new XMLHttpRequest(); } catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } /* 1.缓存 在url?后面连接一个随机数,时间戳 2.乱码 编码encodeURI */ xhr.open('get','2.get.php?username='+encodeURI('刘伟')+'&age=30&' + new Date().getTime(),true); xhr.send(); xhr.onreadystatechange = function() { if ( xhr.readyState == 4 ) { if ( xhr.status == 200 ) { alert( xhr.responseText ); } else { alert('出错了,Err:' + xhr.status); } } } }
post request
oBtn.onclick = function() { var xhr = null; try { xhr = new XMLHttpRequest(); } catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } xhr.open('post','2.post.php',true); //post方式,数据放在send()里面作为参数传递 xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');//申明发送的数据类型 //post没有缓存问题 //无需编码 xhr.send('username=刘伟&age=30'); xhr.onreadystatechange = function() { if ( xhr.readyState == 4 ) { if ( xhr.status == 200 ) { alert( xhr.responseText ); } else { alert('出错了,Err:' + xhr.status); } } } }
【Recommandation de tutoriel connexe :Tutoriel vidéo AJAX】
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!