我在这里看到了一些问题,比如如何调试RESTful服务,其中提到:
不幸的是,同一个浏览器不允许我测试HTTPPUT、DELETE,甚至在某种程度上测试HTTPPOST
我还听说浏览器只支持GET和POST,其他来源包括:
- http://www.packetizer.com/ws/rest.html
- http://www.mail-archive.com/[email protected]/msg13518.html
- http://www.xml.com/cs/user/view/cs_msg/1098
然而,Firefox中的一些快速测试表明,发送PUT
和DELETE
请求的效果与预期一样–XMLHttpRequest
成功完成,请求以正确的方法显示在服务器日志中。我是否缺少一些方面,例如跨浏览器兼容性或不明显的限制
否。HTML 5规范提到:
method和formmethod内容属性是枚举属性
具有以下关键字和状态:关键字get,映射到状态get,表示HTTP get
方法GET方法应该只请求和检索数据以及
应该没有其他影响关键字post,映射到状态
POST,指示HTTP POST方法。POST方法要求
服务器接受要处理的提交表单的数据,这可能会导致
导致一个项目被添加到数据库中,即创建一个新的web
页面资源、现有页面的更新或所有
提到成果关键字对话框,映射到状态对话框,表示
提交表单旨在关闭对话框,其中
表单发现自己(如有)未提交这些属性的默认无效值是GET状态
也就是说,HTML表单只支持GET和POST作为HTTP请求方法。解决方法是使用隐藏的表单字段(服务器读取该字段并相应地发送请求),通过POST隧道其他方法
然而,GET、POST、PUT和DELETE都受到所有主要web浏览器(如Firefox、Safari、Chrome、Opera)中XMLHttpRequest(即AJAX调用)实现的支持