HTML5 PUT / DELETE方法在Chrome中不起作用?
我试图找出为什么在启用HTML5的网站中,put / delete方法不适用于Chrome。 从我搜索的内容来看,这听起来像是Chrome已经工作了一段时间了,所以说我只是寻找一些指针来缩小我的问题。 也许我正在实施错误的形式,或许我的文档类型错了,谁知道。 任何帮助表示赞赏:)
所以,代码如下所示:
<!DOCTYPE html>
<html>
<head>
<title>
some_resource
</title>
</head>
<body>
<div class="content">
<form method="put" action="/some_resource">
<div>
<input id="title" name="title" placeholder="The Resource Title" type="text" value="" autofocus />
</div>
<div>
<textarea id="body" name="body" placeholder="The Resource Body" required></textarea>
</div>
<div>
<input id="submit" name="submit" type="submit" value="Submit" />
</div>
<!-- Resource Settings -->
<ul>
<li>
<input id="listed" name="listed" type="checkbox" value="y" />
</li>
<li>
<input id="template" name="template" type="text" value="resource.html" />
</li>
</ul>
</form>
</div>
</body>
</html>
只是一个表单的基本测试。 现在我已经在最新的Ubuntu Firefox(3.6.7),Opera(10.60内部版)以及谷歌最新的Linux Chrome Beta(5.0.375.99测试版)上尝试过它。 当我提交表单时,他们似乎都没有将正确的put方法发送到服务器。 现在,我相信(不是来自任何具体的研究)Firefox尚未支持这一点,并且像很多HTML5一样,它计划在下一版FF中使用。 歌剧我不知道,但我经常听说与Chrome保持同步。 所以..是啊,我有点困惑。
提交表单时,他们转到网址: http://localhost:8080/some_resource?title=t&body=b&submit=Submit&template=resource.html
。 请注意,正如预期的那样,POST工作得很好。
现在有没有人有任何指示让put方法工作? 对于Linux的测试版本可能没有更新到Windows版本(我假设的是,当我看到PUT为Chrome工作时,人们正在讨论的内容),但我真的希望它是一个问题与我的实施。
服务器是否必须支持PUT / DELETE? (目前我正在使用AppEngine Dev Server)。 我不知道..希望有人有一些想法:)
感谢任何答复,李
注意:我迄今为止测试过的其他HTML5功能正在运行。 例如,在这种形式下,您可以看到自动对焦和所需的属性。 这些在Chrome中按照预期工作。
编辑1:只是为了澄清,我明白对这些的支持是粗略的。 正如我早些时候回答的答案,我不关心其他浏览器的当前支持。 目前Chrome是我想要工作的,我希望Firefox能够在即将发布的版本中工作(我不知道,我只听到他们推着HTML5很多),我不知道Opera。
所有这些只是为了测试和学习HTML5(Web Workers,localStorage等)和CSS3这个全新的奇妙世界。 我只关心流血的边缘浏览器,这是匹配先进的技术:)
PUT和DELETE不再支持<form>
标签的方法。 查看来自HTML4的HTML5差异(2010年10月19日)
作为一个单一的标准,没有“HTML5”。
其中一些与HTML4相同。 其中一些是批准每个浏览器实现并且每个人都使用多年的技术非标准功能。 它的一些新的扩展是浏览器供应商大多同意并处于不同的实施阶段。 例如,像autofocus
。
但其中的一些内容是在标准化之前很可能会发生变化的东西,并且它的一些随机奖金功能让WHATWG的一些随机人员认为它会很好,但是没有显示浏览器作者支持的迹象。
(以前的WHATWG草案几乎与XHTML 2.0一样充满建筑师天文学的坏处),但仍有一些(目前还有)扩展格式提交类型(PUT / DELETE方法和一些非HTTP操作)属于该类别。 每个浏览器当前都忽略了method="put"
,而是回落到默认的attr值get
。
也许有一天浏览器会实现这一点。 或者也许它会从规格中删除。 HTML5离完成还有很长的路要走。 现在,像其他人一样使用POST
。 这不是很纯粹的RESTfulness,但那并没有真正让你有什么特别之处。
<input ... autofocus />
使用HTML或XHTML语法,但不要混合它们。 autofocus="autofocus"
为XHTML5,或为HTML5失去自我关闭/
。
<input id="submit" name="submit" type="submit" value="Submit" />
最好避免命名一个按钮,以避免与form.submit()
方法发生冲突。 除非您需要检查某个特定按钮的点击,否则您不需要提交按钮上的name
。 (并且你不需要为所有的字段添加id
,除非你需要一个id
作为<label for
或script定位的id
,否则你可以不要。)