我在这里看到了一些问题,比如如何调试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中的一些快速测试表明,发送PUT和DELETE请求的效果与预期一致——XMLHttpRequest成功完成,请求以正确的方法显示在服务器日志中。我是否忽略了某些方面,比如跨浏览器兼容性或不明显的限制?
YES, PUT, DELETE, HEAD等HTTP方法在所有现代浏览器中都可用。
为了与XMLHttpRequest兼容,2级浏览器必须支持这些方法。要检查哪些浏览器支持XMLHttpRequest Level 2,我建议CanIUse:
http://caniuse.com/#feat=xhr2
只有Opera Mini缺乏支持atm (juli '15),但Opera Mini缺乏对一切的支持。:)
XMLHttpRequest是JavaScript对象模型中的一个标准对象。
根据维基百科的说法,XMLHttpRequest最初是作为一个ActiveX对象出现在Internet Explorer 5中,但后来成为了一个标准,并在Mozilla家族的1.0、Apple Safari 1.2、Opera 7.60-p1和IE 7.0中被包含在JavaScript中使用。
对象上的open()方法以HTTP方法作为参数-并指定为接受任何有效的HTTP方法(参见链接的第5项)-包括GET, POST, HEAD, PUT和DELETE,如RFC 2616所指定的。
附注IE 7-8只允许以下HTTP方法:"GET", "POST", "HEAD", "PUT", "DELETE", "MOVE", "PROPFIND", "PROPPATCH", "MKCOL", "COPY", "LOCK", "UNLOCK",和"OPTIONS"。