Utiliser la méthode PUT sous forme HTML

Puis-je utiliser une méthode PUT dans un formulaire HTML pour envoyer des données du formulaire vers un serveur?

Les formulaires XHTML 1.x ne prennent en charge que GET et POST. GET et POST sont les seules valeurs autorisées pour l’atsortingbut “method”.

Selon le standard HTML , vous ne pouvez pas . Les seules valeurs valides pour l’atsortingbut method sont get et post , correspondant aux méthodes HTTP GET et POST.

est un HTML non valide et sera traité comme

, c’est-à-dire envoyer une requête GET.

Au lieu de cela, de nombreux frameworks utilisent simplement un paramètre POST pour tunneler la méthode HTTP:

 
...

Bien sûr, cela nécessite un déballage côté serveur.

Puis-je utiliser la méthode “Put” sous forme HTML pour envoyer des données de HTML Form au serveur?

Oui, vous pouvez, mais gardez à l’esprit que cela n’entraînera pas de PUT mais une requête GET. Si vous utilisez une valeur non valide pour l’atsortingbut method de la

, le navigateur utilisera la valeur par défaut get .

Les formulaires HTML (jusqu’à la version HTML 4 (5 Draft) et XHTML 1) ne prennent en charge que GET et POST comme méthodes de requête HTTP. Une solution de contournement consiste à tunneler d’autres méthodes via POST en utilisant un champ de formulaire masqué qui est lu par le serveur et la demande envoyée en conséquence. XHTML 2.0 avait déjà prévu de prendre en charge GET, POST, PUT et DELETE pour les formulaires, mais cela se passe dans XHTML5 de HTML5 , qui ne prévoit pas de prendre en charge PUT. [mise à jour de]

Vous pouvez également proposer un formulaire, mais au lieu de le soumettre, créez et lancez un XMLHttpRequest en utilisant la méthode PUT avec JavaScript.

_method solution de champ caché

Cette méthode est utilisée par Rails et pourrait être adaptée à n’importe quel framework / projet:

  • Ajouter un paramètre _method caché à n’importe quel formulaire qui n’est pas GET ou POST:

      

    Cela peut être fait automatiquement dans les frameworks via la méthode d’aide à la création HTML (ex: Rails form_tag )

  • Fixe la méthode de formulaire actuelle à POST (

    )

  • traite _method sur le serveur et fait exactement comme si cette méthode avait été envoyée à la place du POST réel

Raison / histoire de pourquoi ce n'est pas possible: https://softwareengineering.stackexchange.com/questions/114156/why-there-are-no-put-and-delete-methods-in-html-forms

Malheureusement, les navigateurs modernes ne prennent pas en charge de manière native les requêtes HTTP PUT. Pour contourner cette limitation, assurez-vous que l’atsortingbut de méthode de votre formulaire HTML est «post», puis ajoutez un paramètre de substitution de méthode à votre formulaire HTML comme ceci:

  

Pour tester vos demandes, vous pouvez utiliser “Postman” une extension Google Chrome