我可以在HTML表单中使用PUT方法将数据从表单发送到服务器吗?
当前回答
我可以使用“放”方法在html形式发送数据从html形式到服务器?
是的,你可以,但请记住,它不会导致一个PUT请求,而是一个GET请求。如果为<form>标记的方法属性使用了无效值,浏览器将使用默认值get。
HTML表单(直到HTML版本4 (,5 Draft)和XHTML 1)只支持GET和POST作为HTTP请求方法。一种解决方法是使用隐藏的表单字段(由服务器读取并相应地分发请求)通过POST隧道其他方法。XHTML 2.0曾计划支持表单的GET、POST、PUT和DELETE,但它将进入HTML5的XHTML5,后者不计划支持PUT。(更新)
您也可以提供一个表单,但是不提交它,而是使用JavaScript的PUT方法创建并触发一个XMLHttpRequest。
其他回答
根据HTML标准,你不能。方法属性的唯一有效值是get和post,对应于get和post HTTP方法。<form method="put">是无效的HTML,将被视为<form>,即发送一个GET请求。
相反,许多框架只是简单地使用POST参数来隧道HTTP方法:
<form method="post" ...>
<input type="hidden" name="_method" value="put" />
...
当然,这需要服务器端展开。
XHTML 1。x表单只支持GET和POST。GET和POST是唯一允许的值 “method”属性。
我可以使用“放”方法在html形式发送数据从html形式到服务器?
是的,你可以,但请记住,它不会导致一个PUT请求,而是一个GET请求。如果为<form>标记的方法属性使用了无效值,浏览器将使用默认值get。
HTML表单(直到HTML版本4 (,5 Draft)和XHTML 1)只支持GET和POST作为HTTP请求方法。一种解决方法是使用隐藏的表单字段(由服务器读取并相应地分发请求)通过POST隧道其他方法。XHTML 2.0曾计划支持表单的GET、POST、PUT和DELETE,但它将进入HTML5的XHTML5,后者不计划支持PUT。(更新)
您也可以提供一个表单,但是不提交它,而是使用JavaScript的PUT方法创建并触发一个XMLHttpRequest。
对于使用laravel的人
<form method="post" ...>
@csrf
@method('put')
...
</form>
_method隐藏字段的解决方法
以下是一些web框架使用的简单技术:
添加一个隐藏的_method参数到任何不是GET或POST的表单: <input type="hidden" name="_method" value="PUT"> 这可以通过HTML创建助手方法在框架中自动完成。 将实际的表单方法固定为POST (<form method=" POST ") 进程_method在服务器上,并做的就像该方法已经发送而不是实际的POST
你可以通过以下方法实现:
Rails: form_tag 中@ method (Laravel:“补丁”)
为什么它在纯HTML中是不可能的原理/历史:https://softwareengineering.stackexchange.com/questions/114156/why-there-are-no-put-and-delete-methods-in-html-forms
推荐文章
- ' coll -xs-* '在引导4中不工作
- 当flexbox项目以列模式换行时,容器的宽度不会增长
- 没有声明HTML文档的字符编码
- 使用HTML形式的PUT方法
- 如何转义哈希字符在URL
- 样式输入元素以填充其容器的剩余宽度
- QuotaExceededError: Dom异常22:试图向存储添加一些超出配额的东西
- <字段集>调整大小错误;似乎有不可移动的“min-width: min-content”
- 如何从对象URL获取文件或blob ?
- 拖放文件到标准HTML文件输入
- 有必要写HEAD, BODY和HTML标签吗?
- 空href是否有效?
- 在HTML5中,主导航应该在<header>元素的内部还是外部?
- 如何在表中删除行和列之间不需要的空间?
- 如何清除所有<div>的内容在一个父<div>?