OBTENEZ vs POST en Ajax
Quelle est la différence entre OBTENIR et POST pour Ajax demandes?
Je ne vois pas de différence entre les deux, sauf que lorsque j'utilise OBTENIR, les paramètres sont envoyer dans l'URL, ce qui pour moi ne sont pas vraiment faire une différence, car toutes les demandes sont faites sur l'arrière-plan et l'utilisateur ne trouve aucune différence.
edit:
Quelles sont METTRE et SUPPRIMER méthodes utilisées pour les?
- BTW, il y a aussi les requêtes PUT et DELETE, en plus de publier des demandes. Vous devriez vous renseigner sur ceux, aussi.
- Pour les futurs lecteurs: voici un question connexe par Fooker il y a un an.
Vous devez vous connecter pour publier un commentaire.
OBTENIR est conçu pour récupérer des données à partir du serveur. POST (et moins connus amis PUT et DELETE) sont conçus pour la modification des données sur le serveur.
Une requête GET ne doit jamais entraîner des données supprimées à partir d'une application. Si vous avez un lien, vous pouvez cliquer sur avec un GET pour supprimer des données, Google recherche de votre site peut cliquer sur tous vos "Supprimer" des liens.
La réponse canonique peut être trouvé ici, qui cite le HTML 2.0 spec:
Dans votre appel AJAX, vous devez utiliser quelle que soit la méthode de votre serveur prend en charge. Vous devez toujours de la conception de votre serveur, de sorte que les opérations qui modifient les données sont appelés par POST/PUT/DELETE. D'autres commentaires ont des liens de REPOS, ce qui correspond généralement C/R/U/D pour "POST ou PUT"(Créer)/GET(Lecture)/VENTE(mise à Jour)/DELETE(Supprimer).
Si vous êtes l'envoi de grandes quantités de données, ou des données sensibles via le protocole HTTPS, vous voudrez utiliser un POST. Si c'est juste un simple paramètre, je voudrais utiliser OBTENIR.
Requêtes GET avoir une limite à la quantité de données qui peuvent être envoyés. J'ai oublié le nombre exact, mais cela peut entraîner des problèmes si vous essayez d'envoyer quoi que ce soit.
Fondamentalement la différence entre GET et POST, c'est que dans une requête GET, les paramètres sont passés dans l'URL où, comme dans un POST, les paramètres sont inclus dans le corps du message.
Si ses AJAX ou non n'est pas pertinent. Son sujet de l'action que vous prenez. Je vous recommande de suivre les principes de RESTE. Qui ont plus de dispositions pour la mise à jour, suppression, etc...
OBTENIR les demandes sont plus faciles à exploiter dans CSRF (cross site request forgery) les attaques. À savoir faux requêtes POST nécessite que Javascript soit activé du côté de l'utilisateur, tandis que les fausses demandes sont encore possibles seulement avec img, des balises de script.
De nombreux serveurs web de limiter la longueur des données qui peuvent être transmises dans le cadre de l'URL, de sorte que la demande peut se rompre d'une manière étrange, qui sont difficiles à déboguer.
Aussi, la plupart des serveurs logiciel enregistre les Url dans les journaux d'accès, donc si vous transmettez des informations confidentielles (comme les mots de passe) dans une requête GET, ce sera en toute probabilité être écrites sur le disque en clair.
À partir d'un RESTE de perspective, les requêtes GET devraient pas avoir d'effets secondaires -- ils ne doivent pas modifier les données. Donc, si vous êtes une ressource par des ID, ce qui a du sens, mais si vous avez commis des modifications à une ressource, vous devriez être en utilisant PUT, POST, ou de mise à JOUR pour le verbe http.
Les deux sont utilisés pour envoyer des données et recevoir de réponse à l'aide de ces données.
OBTENIR: Obtenir des informations à stocker dans le serveur. C'est à dire. Recherche, tweets, les Informations de Personne. Si vous voulez envoyer les informations puis obtenir de demande d'envoyer la demande à l'aide de processus.le php?nom=subroto
Il essentiellement d'envoyer des informations par le biais de l'url. Url ne peut pas gérer plus de 2083 char. Donc, pour blog vous rappelez-vous il n'est pas possible?
POST: Post faire la même chose que d'obtenir. Enregistrement de l'utilisateur, la connexion de l'Utilisateur, Big data envoyer, Blog.
Si vous avez besoin d'envoyer des informations sécurisées ensuite utiliser la poste ou pour le big data comme il n'est pas passer par l'url.
AJAX: $.get() et $.post() contiennent des fonctionnalités qui sont des sous-ensembles de $.ajax(). Il a beaucoup de configuration.
$.méthode get (), qui est une sorte de raccourci pour $.Ajax (). Lors de l'utilisation de $.get (), au lieu de passer dans un objet, vous pouvez passer des arguments. Au minimum, vous aurez besoin de ces deux premiers arguments, qui sont l'URL du fichier que vous souhaitez récupérer (c'est à dire ‘test.txt’) et un succès de rappel.
Résumé:
À propos de moi, je préfère POSTER. Je me réserve d'obtenir les évènements, je sais que l'envoyé de la valeur est limitée à des données, j'ai le "contrôle", par exemple, pour récupérer un élément avec un id. Exemple, "getitem?id=123", "deleteImtem?id=123", ... Pour les autres cas, quand j'ai un formulaire à remplir en ligne par un utilisateur, je préfère POSTER.
Comme Ryan Smith l'ont dit, il est préférable d'utiliser la POSTE pour envoyer une grande quantité de données, et moins wories dans le cas de l'utilisation dans d'autres langues/caractères spéciaux (en général tous les majors du framework javascript devrait pas avoir de problèmes à traiter avec cela, mais je pense que est moins wories à utiliser POST).
Pour le RESTE de la perspective, à mon avis, vous pouvez l'utiliser avec un nouveau projet (pour garder une cohérence avec l'ensemble du projet).
Enfin, maybee certains programmes utilisés dans un réseau (URL loguers (ie.: pour voir si les employés ont perdu leur temps sur la non-autorisées de sites, ...) proxys, ... ) ou de tout autre type d'outil peut intercepter la requête. Somes montrera dans les rapports les paramètres que vous avez envoyés à OBTENIR, en la considérant comme une page web différente. Mais dans cette situation, ne l'est peut être pas votre problème, il est passe d'un projet à un autre! 😉
Tout d'abord, de l'information générale. Utilisation
GET
si vous vous contentez de lire les données, utilisezPOST
si vous modifiez quelque chose sur la base de données, fichiers txt, etc.Mais le problème est que certains navigateurs cache
GET
résultats. J'ai eu des problèmes avecAJAX
demandes dans IE7, mais à la fin j'ai trouvé que les caches du navigateurGET
résultats. J'ai repensé les flux et les changements de ma demande dePOST
.Donc, ne pas utiliser de
GET
si vous ne voulez pas de mise en cache.(Bien sûr, vous pouvez désactiver la mise en cache dans des opérations. Mais je n'ai pas le préfèrent)
La différence est la même entre
GET
etPOST
si vous êtes en utilisant Ajax, HTMLform
s, oucurl
. Voici les définitions:Si vous êtes de passage sur tous les arguments avec des personnages que l'on peut obtenir foiré dans l'URL (tels que des espaces), vous utilisez la POSTE. Sinon, vous pouvez utiliser OBTENIR.
Généralement, si vous êtes juste de passage sur quelques petites arguments que vous utiliseriez OBTENIR. Mais pour passer sur des renseignements soumis par les utilisateurs tels que les entrées de blog, texte, etc, c'est une bonne pratique d'utiliser la POSTE.
Il y a aussi certains cadres qui s'appuient entièrement sur le segment en fonction de l'url (comme
site.com/products/133
plutôt quesite.com/products.php?id=333
et ces cadres de désactiver la OBTENIR des variables pour la sécurité. Dans de tels cas, vous utiliserez POST allt le temps.