如何让expressjs使用表单的delete和put方法?
<form method="DELETE" action="">
在chrome的最新稳定版本中使用上面的代码就是发送一个GET请求。这是浏览器的问题吗?
有没有更好的方法来覆盖它,而不需要特殊的输入字段来支持它们?
发布于 2012-04-05 08:49:37
只需将表单设置为post,然后创建一个隐藏字段,如下所示
<input type="hidden" name="_method" value="delete"/>
并根据您正在使用的express版本设置配置。然后,表单方法将被该隐藏字段的值覆盖。
最新版本的express.js将要求你安装method-override包,然后像这样配置你的应用程序:
var methodOverride = require('method-override')
app.use(methodOverride('_method'));
旧版本可能使用:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(express.methodOverride());
更古老的用法是:
app.use(express.bodyParser());
app.use(express.methodOverride());
发布于 2013-10-15 23:46:09
实际上,express.bodyParser()在3.4版本的Express和2.9版本的Connect中已被弃用。在使用express.bodyParser() explained here时存在安全问题
https://stackoverflow.com/questions/9859287
复制相似问题