It is very easy, through history or bookmarks, to re-enter a GET request without realizing it. If GET destroys, it can lead to an unintentional data loss. Perhaps you can be safe if your keys do not repeat, i.e. The action may just fail, but why put your application and data at risk. Destructive actions should always use either POST or DELETE, preferably the latter, although this usually requires AJAX, so you often provide support for both.
Usually I customize the form using a button, as you noticed, but then I will remove this button and replace it with a link and a click handler to force the form to be submitted via javascript. Deletion is usually done through AJAX using the DELETE verb, which updates the contents of the page in a callback. Thus, the delete action works both in browsers with and without javascript, but has enhanced functionality and style when javascript is enabled (95% + time).
source share