It's hard to tell without knowing the explicit error.
The use of the PUT or DELETE is often implemented by "hidden parameters" called _method. It's not only specific for example a Spring MVC's tag library, but is also used by a few other client frameworks. Spring is just following the convention, such as it is.
In order to use this properly, you have to know how your backend is handling with PUT or DELETE requests.
In spring for example you need to define a filter (HiddenHttpMethodFilter, see javadoc), which turns the _method parameter into a "real" HTTP method representation in the HttpServletRequest. This is done as a filter to emphasise the fact the the lack of PUT and DELETE is a browser problem - the servlet API supports it just fine.