我在这里看到了几个问题,其中提到:
不幸的是,同一个浏览器不允许我测试 HTTP PUT、DELETE,在某种程度上甚至是 HTTP POST。
我还听说浏览器仅支持 GET 和 POST,来自其他一些来源,例如:
但是,Firefox 中的一些快速测试表明发送PUT和DELETE请求按预期工作——XMLHttpRequest成功完成,并且请求以正确的方法显示在服务器日志中。我是否缺少某些方面,例如跨浏览器兼容性或不明显的限制?
PUT
DELETE
XMLHttpRequest
不,HTML 5 规范提到:
method 和 formmethod 内容属性是具有以下关键字和状态的枚举属性: 关键字 get ,映射到状态 GET,表示 HTTP GET 方法。GET 方法应该只请求和检索数据,应该没有其他效果。 关键字 post ,映射到状态 POST,表示 HTTP POST 方法。POST 方法请求服务器接受要处理的提交表单的数据,这可能导致将项目添加到数据库、创建新的网页资源、更新现有页面或所有提到的结果. 关键字 dialog ,映射到状态对话框,表示提交表单的目的是关闭表单所在的对话框(如果有),否则不提交。 这些属性的无效值默认值是 GET 状态
method 和 formmethod 内容属性是具有以下关键字和状态的枚举属性:
关键字 get ,映射到状态 GET,表示 HTTP GET 方法。GET 方法应该只请求和检索数据,应该没有其他效果。
关键字 post ,映射到状态 POST,表示 HTTP POST 方法。POST 方法请求服务器接受要处理的提交表单的数据,这可能导致将项目添加到数据库、创建新的网页资源、更新现有页面或所有提到的结果.
关键字 dialog ,映射到状态对话框,表示提交表单的目的是关闭表单所在的对话框(如果有),否则不提交。
这些属性的无效值默认值是 GET 状态
即 HTML 表单仅支持 GET 和 POST 作为 HTTP 请求方法。一种解决方法是使用隐藏的表单字段通过 POST 通过 POST 隧道传输其他方法,该字段由服务器读取并相应地分派请求。
然而,所有主要网络浏览器(IE、Firefox、Safari、Chrome、Opera)中的 XMLHttpRequest(即 AJAX 调用)的实现 都 支持 GET 、 POST 、 PUT 和 DELETE 。 __