Pourquoi existe-t-il des requêtes GET et POST dans AJAX car elles n'affectent pas l'URL de la page? Quelle différence cela fait-il en passant des données sensibles sur GET dans AJAX car les données ne sont pas reflétées dans l'URL de la page?GET vs POST dans AJAX?
Répondre
Vous devez utiliser le verbe HTTP correspondant à ce dont vous avez besoin de votre service Web.
Lorsque vous traitez avec un URI Collection comme: http://example.com/resources/
GET: Liste des membres de la collection, et également leur URIs membres pour une navigation. Par exemple, listez toutes les voitures à vendre.
PUT: la signification définie comme "remplacer toute la collection avec une autre collection".
POST: Créez une nouvelle entrée dans la collection dans laquelle l'ID est attribué automatiquement par la collection. L'ID créé est généralement inclus dans les données renvoyées par cette opération.
DELETE: Signification définie comme "supprimer la totalité de la collection".
Lorsque vous traitez avec un URI membre comme: http://example.com/resources/7HOU57Y
GET: Récupérer une représentation de l'organe adressé de la collection exprimée dans un type MIME approprié.
PUT: Mettez à jour le membre adressé de la collection ou créez-le avec l'ID spécifié.
POST: traite le membre adressé comme une collection à part entière et en crée un nouveau subordonné.
DELETE: Supprimer le membre adressé de la collection.
Source: Wikipedia
Eh bien, comme pour GET, vous avez toujours la limitation de la longueur de l'URL. Autre que cela, il est tout à fait concevable que le serveur traite différemment les requêtes POST et GET; donc le besoin d'être en mesure de spécifier quelle demande vous faites.
En outre, vous pouvez utiliser les deux types de demande lors du développement d'une application. Pour la plupart d'entre eux, le drapeau 'is_ajax' suffit. Mieux vaut avoir un tel choix que de ne pas l'avoir. –
J'accepte la réponse de dnl.vssll parce que la restriction de longueur d'URL de GET n'est pas imposée par HTTP ou AJAX, vous pouvez vérifier cette réponse pour cela http://stackoverflow.com/questions/812925/what-is-the-maximum-possible- length-of-a-query-string. Son limité par navigateur/serveur et pourquoi sa limite est vraiment un point de discussion ..comme HTTP est basé sur le texte, le navigateur envoie la requête HTTP dans son ensemble. Il inclut la chaîne de requête, donc s'il n'y a pas de limite de longueur de requête (En supposant un cas idéal) – Xinus
Je ne plaidais pas pour défendre la limite de longueur, je disais juste que c'était là, et que vous devrez le considérer, parce que quand vous faites du développement web, vous ne pouvez vraiment pas vous permettre de ne pas tenir compte des navigateurs * *. mais bon, vous n'avez pas besoin de motiver vos acceptations; La réponse de dnl était bonne aussi =) –
Deux principales raisons pour les avoir:
GET
demandes ont des limites très restrictives sur la taille;POST
sont généralement capables de contenir beaucoup plus d'informations. Le backend peut s'attendre àGET
ouPOST
, selon la façon dont il a été conçu. Nous avons besoin de la flexibilité de faire unGET
si le backend en attend un, ou unPOST
si c'est ce qu'il attend.
Vous envoyez normalement les paramètres au script AJAX, il renvoie les données en fonction de ces paramètres. Cela fonctionne exactement comme une forme avec method = "get" ou method = "post". Lors de l'utilisation de la méthode GET, les paramètres sont transmis dans la chaîne de requête. Lors de l'utilisation de la méthode POST, les paramètres sont envoyés dans le corps du message.
Généralement, si vos paramètres ont très peu de caractères et ne contiennent pas d'informations sensibles, vous les envoyez via la méthode GET. Les données sensibles (par exemple, un mot de passe) ou un texte long (par exemple une biographie longue de 8000 caractères d'une personne) sont mieux envoyés via la méthode POST.
AFAIK Les méthodes GET et POST ne diffèrent que par leur format de requête, donc je ne pense pas que le POST soit plus sécurisé que GET. GET est considéré comme non sécurisé car les paramètres sont reflétés dans l'URL, mais AJAX surmonte ce problème. Aussi tous les navigateurs modernes ne limitent pas la quantité de données que nous pouvons envoyer via la requête GET .. Seule explication possible que j'ai pu voir des réponses est AJAX est conçu pour exister avec le protocole HTTP bien établi .. ce qui est logique. – Xinus
@Xinus: Dernièrement, les navigateurs * et * ont toujours imposé des limites de longueur d'URL significatives (par exemple, GET), tout comme la spécification HTTP IIRC. Pouvez-vous poster une référence pour votre déclaration qu'ils ne le font pas? –
Vous avez raison. Mais la raison pour laquelle certaines personnes considèrent que le POST est * légèrement * plus sécurisé que GET est que les paramètres GET peuvent être stockés dans divers emplacements, y compris les journaux de serveur et l'historique du navigateur sous la forme d'URL. POST n'a pas ce problème. –
D'autres ont couvert les principaux points (contexte/idempotence, et taille), mais j'en ajouterai un autre: le chiffrement. Si vous utilisez SSL et souhaitez crypter vos arguments d'entrée, vous devez utiliser POST.
Ceci est incorrect. Toutes les données transférées via SSL sont cryptées. GET vs POST ne fait aucune différence. –
Je suis d'accord avec Joel L. Toute la communication est cryptée alors où est une question de quelle méthode utilisée? – Xinus
Une autre différence entre GET
et POST
est la manière dont la mise en cache est gérée dans les navigateurs. POST
La réponse n'est jamais mise en cache. GET
peut ou non être mis en cache en fonction des règles de mise en cache spécifiées dans vos en-têtes de réponse.
Lorsque nous utilisons la méthode GET dans Ajax, seul le contenu de la valeur du champ est envoyé, pas le format dans lequel le contenu est. Par exemple, le contenu de la zone de texte est simplement ajouté dans l'URL dans le cas de la méthode GET (sans un nouveau caractère de ligne). Ce n'est pas le cas dans la méthode POST.
Merci .. J'utilise principalement la méthode GET avec l'Ajax et je ne l'ai pas eu de problème jusqu'à présent, sauf les éléments suivants: cache
Internet Explorer (contrairement à Firefox et Google Chrome) Inscrivez-vous appeler si vous utilisez la même GET valeurs. Ainsi, en utilisant un intervalle avec Ajax GET, vous pouvez afficher les mêmes résultats, sauf si vous modifiez l'URL avec une utilisation aléatoire non pertinente pour chaque Ajax GET.
Il s'agit simplement de respecter les règles du protocole http.
Obtenez - les appels doivent être idempotents. Cela signifie que si vous l'appelez plusieurs fois, vous obtiendrez le même résultat. Il n'est pas prévu de changer les données sous-jacentes. Vous pouvez l'utiliser pour un champ de recherche, etc.
Message - les appels ne sont PAS idempotents. Il est permis d'apporter une modification aux données sous-jacentes, donc pourrait être utilisé dans une méthode create. Si vous l'appelez plusieurs fois, vous créerez plusieurs entrées.
- 1. GET vs POST à Ajax
- 2. Services Web - Put vs Post vs Get
- 3. GET vs POST dans des rails
- 4. Sécurité AJAX: POST ou GET?
- 5. C# smartdevice - HTTPWEBREQUEST GET vs POST InvalidOperationException
- 6. différence entre AJAX POST et GET
- 7. Ajax JQuery Get, Post mothed question
- 8. POST ou GET dans XMLHttpRequest
- 9. GET et POST dans asp.net
- 10. Internet Explorer traitant la requête AJAX GET comme demande POST?
- 11. $ .get, $ .post, $ .ajax, $ (MTE) .load à .ashx Problème
- 12. GET/POST non-ajax en utilisant jQuery (plugin?)
- 13. Utiliser GET plutôt que POST pour asp.net appel ajax
- 14. ajax jQuery GET échoue
- 15. get post de wordpress
- 16. jQuery: pourquoi $ .post fait un GET au lieu d'un POST
- 17. post/redirect/get
- 18. java - POST vs JDBC
- 19. Ajax POST méthode
- 20. Post/Redirect/Get Pattern dans ASP.NET MVC
- 21. AJAX XMLHttpRequest POST
- 22. Soutien en cliquant sur un lien, mais en envoyant un POST (vs GET) sur le serveur, sans Ajax?
- 23. Curl: GET et POST simultanés
- 24. jQuery: $ .post ne fonctionne pas, $ .get fonctionne
- 25. Paramètres JSP, GET et POST
- 26. ajax méthode post jquery
- 27. Problème inconnu (AJAX/GET)
- 28. Comment utiliser POST avec ajax?
- 29. AJAX GET condition de course?
- 30. Utilisation des appels POST et GET Ajax pour le même WebMethod dans le service Web ASMX
Les données sont reflétées dans l'URL de la page à l'aide de GET. Jetez un oeil à ce qui se passe avec un moniteur TCP/IP ou même simplement le module complémentaire Header Monitor pour Firefox. –
Copie possible: http://stackoverflow.com/questions/715335/get-vs-post-in-ajax/ – trante