The issue is not if the HTTP spec supports the methods or not, it is the browsers that do not support those methods, and that's why the _method shim was created.
I tried looking for relevant references on the web and could only find a Prototype bug from 2008 -- https://prototype.lighthouseapp.com/projects/8886/tickets/289-allow-put-delete-and-other-http-methods-on-ajax-requests where some of the comments clearly explain that there's no cross- browser support for verbs other than GET and POST. This WebOS forums post also shows at which point WebKit introduced support for the PUT method -- https://developer.palm.com/distribution/viewtopic.php?f=15&t=2373&p=18572&hilit=put+request#p18572 TL;DR -- only Firefox supports PUT and DELETE, and post Feb 2010 builds of WebKit suppoort PUT requests (not sure about DELETE). On Jun 7, 2:49 pm, Ryan Florence <[email protected]> wrote: > Right, the xmlHttpRequest spec and HTTP spec support all four methods, while > the HTML5 form attribute "method" does not. > > On Jun 7, 2011, at 3:45 PM, Sean McArthur wrote: > > > > > > > > > HTML does not determine HTTP. Those other HTTP actions exist, regardless of > > whether they're legal attributes in forms in HTML5. > > > On Tue, Jun 7, 2011 at 1:08 PM, gonchuki <[email protected]> wrote: > > Actually, only GET and POST are official methods in the HTML5 spec > > [1]. PUT and DELETE were there at some point, but have since been > > removed so you shouldn't assume that any/all browsers will support it. > > Also, I know this holds true for most XHR "1" implementations, not > > sure if all the new XHR2 capable browsers implement those other > > methods regardless of what the HTML5 spec says. > > > [1]http://www.w3.org/TR/html5/association-of-controls-and-forms.html#att... > > > On Jun 6, 7:08 am, Lee <[email protected]> wrote: > > > On 06/06/2011 16:06, Tim Wienk wrote: > > > > > If I understood him correctly what he wants is to actually *not* > > > > emulate, and use the actual "delete" and "put" methods, and the > > > > problem was that it emulates by default and changes your "delete" into > > > > a "post". > > > > Exactly. It seems a strange default, to mange HTTP, but I can see the > > > potential reasoning sine you pointed out the Rails approach. > > > > Thanks again > > > Lee
