633 votes

Sont le PUT, DELETE, TÊTE, etc méthodes disponibles dans la plupart des navigateurs web?

J'ai vu un couple de questions ici comme Comment déboguer les services RESTful, qui mentionne:

Malheureusement, ce même navigateur ne me permet pas de tester HTTP PUT, DELETE, et à un certain degré, même HTTP POST.

J'ai aussi entendu dire, que les navigateurs prennent en charge uniquement GET et POST, à partir de quelques autres sources comme:

Cependant, quelques tests rapides dans Firefox montrent que l'envoi d' PUT et DELETE des demandes fonctionne comme prévu -- XMLHttpRequest se termine avec succès, et que la requête s'affiche dans les journaux du serveur avec la bonne méthode. Est-il un aspect de ce qui me manque, comme la compatibilité inter-navigateur ou non des limites évidentes?

474voto

Matthew Murdoch Points 11530

Les formulaires HTML (jusqu'à la version HTML 4 et XHTML 1) uniquement en charge GET et POST HTTP méthodes de demande de. Une solution de contournement pour ce qui est de tunnel d'autres méthodes par la POSTE à l'aide d'un champ de formulaire masqué qui est lu par le serveur et la demande distribué en conséquence.

Cependant, GET, POST, PUT et DELETE sont pris en charge par les implémentations de XMLHttpRequest (c'est à dire les appels AJAX) dans tous les principaux navigateurs web (IE, Firefox, Opera).

89voto

Anne Points 464

Les formulaires HTML support GET et POST. (HTML5 à un point ajouté PUT/DELETE, mais ceux qui ont été abandonnées.)

XMLHttpRequest prend en charge toutes les méthodes, y compris le POULET, bien que certains noms de méthode sont comparés au cas insensiblement (méthodes sont sensibles à la casse par HTTP) et certains noms de méthode ne sont pas pris en charge pour des raisons de sécurité (par exemple, se CONNECTER).

Les navigateurs sont lentement convergent sur les règles définies par XMLHttpRequest, mais comme les autres commentaire soulignait il y a encore quelques différences.

82voto

Andre Bossard Points 4655

Lire une analyse en profondeur ici: HTTP méthodes, les navigateurs Web et les XMLHttpRequest

Il a testé différentes Méthodes HTTP avec des appels Ajax de Fx, Opera et IE.

44voto

Vihung Points 3066

XMLHttpRequest est une norme de l'objet dans le modèle d'Objet JavaScript.

Il est d'abord apparu dans Internet Explorer 5 comme un objet ActiveX, mais il a depuis été transformé en une norme et a été inclus pour une utilisation dans le code JavaScript de la famille Mozilla depuis la 1.0, Apple Safari 1.2, Opera 8.0, et IE 7.0.

L' open() méthode sur l'objet prend de la Méthode HTTP comme un argument - et il est spécifié que la prise pour être valable, toute méthode HTTP - y compris GET, POST, HEAD, PUT et DELETE

18voto

Hank Gay Points 36173

Je crois que ces observations se réfèrent spécifiquement pour les navigateurs, c'est à dire, de cliquer sur des liens et de la soumission de formulaires, pas XMLHttpRequest. XMLHttpRequest est juste un client personnalisé qui vous écrit en JavaScript qui utilise le navigateur comme un moment de l'exécution.

Mise à JOUR: Pour clarifier, je ne voulais pas (même si je n'ai écriture) qui vous a écrit XMLHttpRequest; je voulais dire que vous avez écrit le code qui utilise XMLHttpRequest. Les navigateurs ne supporte pas l' XMLHttpRequest. XMLHttpRequest vient de le runtime JavaScript, ce qui peut être hébergé par un navigateur, bien qu'il n'est pas nécessaire d'être (voir Rhino). C'est pourquoi les gens disent que les navigateurs ne prennent pas en charge PUT et DELETE- , car c'est le JavaScript qui est de les soutenir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X