40 votes

Comment spécifier la méthode de SUPPRESSION dans un lien ou un formulaire ?

Rfc2616 liste de nombreuses méthodes à part GET et POST, comme, disons, DELETE, PUT ETC. Le champ Méthode dans les formulaires html, cependant, semble être autorisé à spécifier seulement GET ou POST.

Est-il possible de créer un lien ou un formulaire dans une page html qui utilise une méthode de requête qui n'est pas GET ou POST ?

18voto

AlmightyWhy Points 351

J'essayais de comprendre cela pour une application de rails qui utilisait Angular sur le front-end ; cela semble fonctionner pour cet environnement :

<a data-confirm="Are you sure?" data-method="delete" href="http://stackoverflow.com/link-to-resource" rel="nofollow">Delete</a>

Edit : Juste pour prévenir tout le monde, je pense que vous avez encore besoin d'avoir jQuery pour que cela fonctionne. J'ai enlevé jQuery et ça a cessé de fonctionner ; je l'ai remis en place et ça a commencé à fonctionner.

17voto

Paul D. Waite Points 35456

Vous ne pouvez certainement pas créer un lien qui utilise autre chose que GET. Depuis le début du HTML, les liens sont censés être idempotents et exempts d'effets secondaires.

Pour Forms et XMLHTTPRequests, le lien de Caps est l'endroit à regarder : Les méthodes PUT, DELETE, HEAD, etc sont-elles disponibles dans la plupart des navigateurs Web ?.

3voto

Ifnot Points 716

Il n'est pas possible de créer un lien ou un formulaire avec la méthode delete.

De nombreux framework web créent une entrée cachée appelée "_method" pour gérer PUT et DELETE.

J'ai créé un plugin pour convertir automatiquement les liens vers Forms : RestfulizerJs

Vous pouvez jeter un œil ici : https://github.com/Ifnot/RestfulizerJs

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