我看过一对夫妇的问题在这里像 如何调试宁静的服务, ,其中提到:

不幸的是,同一浏览器将不允许我来测试HTTP PUT,删除,并在一定程度甚至HTTP员额。

我还听说,浏览器的支持只能获得后,从一些其他来源,如:

然而,几个快速测试Firefox显示,发送 PUTDELETE 要求作品作为预期--的 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, PUTDELETE, 如 指定由RFC2616.

作为一个侧面说明 即7至8只允许如下HTTP方法:"获取"、"发布","HEAD","投入"、"删除"、"移动"、"PROPFIND","PROPPATCH","MKCOL"、"复制"、"锁定","解开",和"选项".

我相信这些评论意见具体提到的浏览器,即,点击链接和提交形式,不 XMLHttpRequest. XMLHttpRequest 只是一个定制的客户 你的 写了在JavaScript使用浏览器作为一个运行时间。

更新:为了澄清,我并不意味着(虽然我没有写), 你的 写了 XMLHttpRequest;我的意思是,你写的代码使用 XMLHttpRequest.浏览器本身并不支持 XMLHttpRequest. XMLHttpRequest 来自JavaScript运行时,可以主办一浏览器,虽然它不是需要(见 犀牛).这就是为什么人们说浏览器,不支持 PUTDELETE—因为它实际上是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:

http://caniuse.com/#feat=xhr2

只有歌迷你是缺乏支持atm(朱莉'15),但歌剧院的小缺乏支持一切。:)

只是为了加Safari2和早绝对不支持把以及删除。我得到的印象是3这样做了,但是我没有它的周围,以测试了。Safari4肯定不支持把以及删除。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top