我可以在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表单中触发一个put请求,但它将POST请求发送到服务器。要添加PUT请求-
我们可以通过监听脚本中的提交操作,然后将put请求发送到特定端点来实现这一点。
http-server环境的截图。测验
对于使用laravel的人
<form method="post" ...>
@csrf
@method('put')
...
</form>
根据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”属性。
如果你正在使用nodejs,你可以安装包方法覆盖,让你使用一个中间件来做这件事。 文档链接:http://expressjs.com/en/resources/middleware/method-override.html
安装后,我所要做的就是:
var methodOverride = require('method-override')
app.use(methodOverride('_method'))
推荐文章
- 使伸缩项目正确浮动
- 形式内联内的形式水平在twitter bootstrap?
- 自定义元素在HTML5中有效吗?
- 如何触发自动填充在谷歌Chrome?
- 创建圈div比使用图像更容易的方法?
- 为什么Chrome浏览器不正确地确定页面是在不同的语言,并提供翻译?
- 在网页上用鼠标模拟震颤(例如帕金森病)?
- Bootstrap抛出Uncaught错误:Bootstrap的JavaScript需要jQuery
- 如何改变文本区域的边框颜色:焦点
- 我如何设置背景颜色为文本的宽度,而不是整个元素的宽度,使用CSS?
- 如何删除和清除所有的本地存储数据
- 强制打开“另存为…”弹出打开文本链接点击PDF在HTML
- 如何修改标签文本?
- 在HTML中还有其他有用的空格码吗,比如半空格的 , em-spaces, en-spaces等等?
- 输入触发器按钮单击