在大多数Web浏览器中都可以使用PUT,DELETE,HEAD等方法吗?

我在这里看到了一些问题,比如如何调试RESTful服务,其中提到:

不幸的是,相同的浏览器不允许我测试HTTP PUT,DELETE,甚至在某种程度上甚至HTTP POST。

我也听说浏览器只支持GET和POST,来自其他一些来源,如:

  • http://www.packetizer.com/ws/rest.html
  • http://www.mail-archive.com/jmeter-user@jakarta.apache.org/msg13518.html
  • http://www.xml.com/cs/user/view/cs_msg/1098
  • 但是,Firefox中的一些快速测试显示发送PUTDELETE请求的方式正常 - XMLHttpRequest成功完成,并且请求以正确的方法显示在服务器日志中。 有没有这方面的缺失,比如跨浏览器兼容性或非显而易见的限制?


    HTML表单(直到HTML版本4和XHTML 1)仅支持GETPOST作为HTTP请求方法。 解决此问题的方法是通过POST使用隐藏表单字段来通过POST来引导其他方法,该表单字段由服务器读取,并相应地分派请求。

    但是,在所有主要Web浏览器(IE,Firefox,Safari,Chrome,Opera)中,XMLHttpRequest(即AJAX调用)的实现都支持GETPOSTPUTDELETE


    HTML表单支持GET和POST。 (HTML5在某个时候添加了PUT / DELETE,但那些被删除了。)

    XMLHttpRequest支持每种方法,包括CHICKEN,尽管某些方法名称是不区分大小写的(方法对每个HTTP区分大小写),并且出于安全原因(例如CONNECT)根本不支持某些方法名称。

    浏览器正逐渐趋于XMLHttpRequest指定的规则,但正如其他评论指出的那样,仍然存在一些差异。


    XMLHttpRequest是JavaScript对象模型中的标准对象。

    根据维基百科的说法, XMLHttpRequest首先作为ActiveX对象出现在Internet Explorer 5中,但自此以后已经被制定为标准,并且自1.0,Apple Safari 1.2,Opera 8.0和IE 7.0以来已包含在Mozilla家族的JavaScript中使用。

    对象的open()方法将HTTP方法作为参数 - 被指定为采用任何有效的HTTP方法(请参阅链接的项目编号5) - 包括GETPOSTHEADPUTDELETE ,如RFC 2616。

    请注意,IE 7-8只允许使用以下HTTP方法:GET,POST,HEAD,PUT,DELETE,MOVE,PROPFIND,PROPPATCH,MKCOL, ,“复制”,“锁定”,“解锁”和“选项”。

    链接地址: http://www.djcxy.com/p/7039.html

    上一篇: Are the PUT, DELETE, HEAD, etc methods available in most web browsers?

    下一篇: Passing params in the URL when using HTTP POST