2013-08-24 5 views
1

У меня есть ресурс uri как /avl/leagues/leagueName. Идея заключается в том, чтобы удалить лигу с предоставленным именем в спокойной манере. Я попробовал ниже, но браузеры всегда отправляют GET вместо DELETE. Любые идеи почему? Я использую Tomcat на стороне сервера.handling DELETE in REST

<form action="/avl/leagues/Cccccc" method="DELETE"> 
    <input type="submit" value="Cancel league"> 
</form> 

ответ

2

Браузеры не очень хорошие клиенты. Они в основном используют POST и GET для форм, и все.

Библиотека тегов формы Spring MVC позволяет указать DELETE как метод, IIRC, и фактически добавит скрытое поле в форму, сообщающую серверу, что хотя метод на самом деле не является DELETE (поскольку браузер не способен для отправки таких запросов), он должен обрабатываться сервером как DELETE (благодаря фильтру). См. Using PUT and DELETE methods in Spring MVC за аналогичный вопрос и его ответ.

4

HTML forms only officially support GET and POST для отправки.

Как правило, люди обходят это ограничение путем отправки запроса через Ajax или включения скрытого поля в форму, чтобы сообщить серверный код для обработки этого запроса, как если бы это был DELETE, а не GET. (Конечно, код на стороне сервера должен знать, чтобы искать это поле и действовать соответствующим образом.)