是的投入、删除头等方法在大多数网浏览器?
-
03-07-2019 - |
题
我看过一对夫妇的问题在这里像 如何调试宁静的服务, ,其中提到:
不幸的是,同一浏览器将不允许我来测试HTTP PUT,删除,并在一定程度甚至HTTP员额。
我还听说,浏览器的支持只能获得后,从一些其他来源,如:
- 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
成功完成,并且该请求显示在服务器记录的正确方法。是有某些方面这个我丢失,例如跨浏览器的兼容性或非显而易见的限制?
解决方案
没有。的 HTML5规范 提到:
方法和formmethod内容属性列举的特性 与以下关键词以及国家:
关键字 获得, ,映射的国家得到的,表示HTTP GET 法。获取方法应只请求和检索数据和 应该没有其他效果。
关键字 后, ,映射的国家 员额,表示HTTP POST方法。该员额方法的要求, 服务器接受的形式提交的数据进行处理,这可能 结果在一个项目被添加到数据库,建立一个新的网页 网页资源,更新已有网页,或所有的 提到的成果。
关键字 对话, ,映射的国家对话,指示 提交形式是用来关闭对话框在其中 形式发现自己,如果任,否则不提交。
值无效的默认这些属性是得到国家
I.e。HTML形式仅仅支持 获得 和 后 HTTP请求的方法。一个解决办法为这是隧道的其他方法通过后,通过使用一个隐藏的形式领域,这是读通过的服务器以及请求派遣相应。
但是, 获得, 后, 把 和 删除 都 支持实现方案的程序(即阿贾克斯的电话)在所有主要的网络浏览器(即,火狐,野生动物园、铬、歌剧院).
其他提示
HTML形式的支持获取和职位。(HTML5一点加把/删除,但是那些被丢弃。)
程序的支持的每一个方法,包括鸡,虽然一些方法名称匹配的情况下-还(方法的情况下,敏感的每HTTP)和一些方法名称不支持在所有出于安全原因(例如连接).
浏览器都慢慢地会聚在规则规定的程序,但正如其他评论指出仍存在一些差异。
XMLHttpRequest
是一个标准的对象在JavaScript对象的模式。
根据Wikipedia, XMLHttpRequest
第一次出现在互联网浏览器5作为一个插件对象,但后来被制作成一个标准已经包括用于JavaScript在Safari家庭由于1.0,苹果Safari1.2、歌剧7.60-p1,即7.0.
的 open()
方法 在对象的需HTTP方法作为一个参数--和被指定为采取任何有效HTTP方法(见项目5号的链接),包括 GET
, POST
, HEAD
, PUT
和 DELETE
, 如 指定由RFC2616.
作为一个侧面说明 即7至8只允许如下HTTP方法:"获取"、"发布","HEAD","投入"、"删除"、"移动"、"PROPFIND","PROPPATCH","MKCOL"、"复制"、"锁定","解开",和"选项".
我相信这些评论意见具体提到的浏览器,即,点击链接和提交形式,不 XMLHttpRequest
. XMLHttpRequest
只是一个定制的客户 你的 写了在JavaScript使用浏览器作为一个运行时间。
更新:为了澄清,我并不意味着(虽然我没有写), 你的 写了 XMLHttpRequest
;我的意思是,你写的代码使用 XMLHttpRequest
.浏览器本身并不支持 XMLHttpRequest
. XMLHttpRequest
来自JavaScript运行时,可以主办一浏览器,虽然它不是需要(见 犀牛).这就是为什么人们说浏览器,不支持 PUT
和 DELETE
—因为它实际上是JavaScript是支持他们。
_method
隐藏域解决方法
用于铁轨和可能适合于任何框架:
添加一个隐藏的
_method
参数的任何形式是得不到或职:<input type="hidden" name="_method" value="DELETE">
这是可以做到自动在框架通过HTML创造辅助方法(例如轨
form_tag
)解决实际的形式方法,以后(
<form method="post"
)进程
_method
在服务器上,并不完全一样,如果这种方法已经发送,而不是实际员额
理/历史的为什么它是不可能的: https://softwareengineering.stackexchange.com/questions/114156/why-there-are-no-put-and-delete-methods-in-html-forms
是的, 把,删除,头等HTTP方法是适用于所有现代浏览器。
符合 程序2级 浏览器 必须 支持这些方法。检查的浏览器的支持程序2级,我建议CanIUse:
只有歌迷你是缺乏支持atm(朱莉'15),但歌剧院的小缺乏支持一切。:)
只是为了加Safari2和早绝对不支持把以及删除。我得到的印象是3这样做了,但是我没有它的周围,以测试了。Safari4肯定不支持把以及删除。