Maison  >  Article  >  interface Web  >  Explication détaillée de l'utilisation de GET et POST en Ajax

Explication détaillée de l'utilisation de GET et POST en Ajax

php中世界最好的语言
php中世界最好的语言original
2018-04-02 14:54:471440parcourir

Cette fois, je vais vous apporter une explication détaillée de l'utilisation de GET et POST en Ajax. Quelles sont les précautions lors de l'utilisation de GET et POST en Ajax. Voici des cas pratiques, jetons un coup d'oeil.

Dans l'essai précédent, de manière nostalgique, j'ai résumé une méthode de création d'objets XHR compatibles avec différents navigateurs :

Après avoir établi l'objet XHR, il suffit au client de passer les données au serveur d'une manière ou d'une autre pour obtenir la réponse correspondante. Ici, dans le deuxième trimestre du résumé technologique Ajax, je me concentrerai sur deux manières de soumettre des données.

Avant de faire cela, nous devons comprendre notre protocole de transmission HTTP :

HTTP fonctionne comme un protocole requête-réponse entre le client et le serveur.

Exemple : Le client (navigateur) soumet une requête HTTP au serveur ; le serveur renvoie une réponse au client. La réponse contient des informations d'état sur la demande et le contenu qui a pu être demandé. Si vous souhaitez transmettre des données basées sur le protocole HTTP, vous devez utiliser deux méthodes de requête

Deux méthodes de requête HTTP  : GET et POST

Lors des requêtes et des réponses entre le client et le serveur, les deux méthodes les plus couramment utilisées sont : GET et POST.

  • GET - Demande des données à une ressource spécifiée.

  • POST - Soumettre les données à traiter à la ressource spécifiée

Ceci est la description du scénario d'utilisation de GRT et POST sur le W3C, de Literally compris, c'est : GET est utilisé pour obtenir des données du serveur, et POST est utilisé pour transmettre des données au serveur

Cela peut être vu à partir de l'URL du chemin de soumission et des données :

Les

attributs qui peuvent être utilisés pour pointer vers des URL sont :

1

action dans le formulaire

2 dans la balise a ; href

3. L'attribut src dans le script img (cet attribut n'est pas limité par la "même politique d'origine" et peut être utilisé pour "inter-domaine". Je voudrais résumer certains problèmes inter-domaines dans le futur proche. Ici d'abord Creusez un trou)

Ici, parlons de leurs différences dans la soumission de formulaire

1. Dans la soumission de formulaire Ajax. , obtenez Utiliser la fonction open() pour soumettre des données, où les données sont collées derrière l'URL sous la forme d'une clé et d'une valeur d'URL :

xhr.open('get','xxx.php?name=tom & age=18');
xhr.send(null);
Dans l'URL du navigateur, cela ressemble à ceci :

obtenir l'URL de soumission

On peut le voir ici : GET ajoute la file d'attente de données de paramètres à l'URL pointée par le attribut d'action du formulaire de soumission, et la valeur et Chaque champ du formulaire a une correspondance biunivoque et peut être vu dans l'URL. La longueur de l'URL de l'ID est limitée. Lorsque l'URL est trop longue, les caractères trop longs seront automatiquement interceptés. Cela peut facilement poser un problème : lorsque trop de paramètres sont transmis, ce qui rend l'URL trop longue, l'URL intercepte automatiquement les caractères trop longs et, finalement, les paramètres transmis ne peuvent pas être obtenus. Cela limite également la taille des données transmises par GET à ne pas généralement dépasser 2 Ko ;

De plus, comme le montre la capture d'écran de l'URL : GET

la sécurité est très faible lors de la soumission de données via le GET. méthode, le nom d’utilisateur et le mot de passe apparaîtront sur l’URL. Si :

- la page de connexion peut être mise en cache par le navigateur

- d'autres peuvent accéder à la machine du client ;

Ensuite, d’autres peuvent lire le numéro de compte et le mot de passe du client à 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é.

Ce n'est pas que la méthode GET n'a aucun avantage. Dans le test de vitesse, la vitesse de soumission GET est des dizaines de fois supérieure à celle de la méthode POST.

2. Dans la soumission d'un formulaire Ajax, POST n'a besoin que de fournir l'URL dans la fonction open(), et la fonction send() soumet les données :

//获取form数据
var formDom = document.querySelector('form');
var formData = new FormData(formDom);
//发送数据
xhr.open('post',formDom.action);
xhr.send(formData);
POST est : via le mécanisme HTTPPOST, Placez chaque champ du formulaire et son contenu dans l'EN-TÊTE HTML et envoyez-le à l'adresse URL pointée par l'attribut action. Les utilisateurs ne peuvent pas voir ce processus. Sécurité accrue

POST transmet une grande quantité de données et est généralement sans restriction par défaut. Vous pouvez utiliser l'objet FormData dans cette démo pour transmettre des images, du texte enrichi et d'autres fichiers, ce que get ne peut pas faire.

Pour résumer, Get est une demande de données adressée au serveur, tandis que Post est une demande de soumission de données au serveur. Dans FORM (formulaire), la méthode par défaut est "GET",

En substance. , GET et POST n'ont que des mécanismes d'envoi différents, aucun n'est pris et l'autre est envoyé !

En bref, il n'y a aucun avantage ou inconvénient entre ces deux méthodes de soumission de formulaires. Elles ont seulement des scénarios d'adaptation différents, qu'il faut appréhender en fonction des besoins de notre travail quotidien.

Plus tard, je résumerai plusieurs manières différentes d'écrire des chemins dans l'interaction entre le navigateur et le serveur.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Méthode Ajax pour répondre à la chaîne json et au tableau json

Utiliser Ajax pour obtenir la synchronisation et l'asynchrone Quelle est la différence

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn