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