首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >expressjs支持不带methodoverride的方法delete和put

expressjs支持不带methodoverride的方法delete和put
EN

Stack Overflow用户
提问于 2012-03-25 17:56:56
回答 2查看 13.7K关注 0票数 20

如何让expressjs使用表单的delete和put方法?

代码语言:javascript
复制
<form method="DELETE" action="">

在chrome的最新稳定版本中使用上面的代码就是发送一个GET请求。这是浏览器的问题吗?

有没有更好的方法来覆盖它,而不需要特殊的输入字段来支持它们?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-05 08:49:37

只需将表单设置为post,然后创建一个隐藏字段,如下所示

代码语言:javascript
复制
<input type="hidden" name="_method" value="delete"/>

并根据您正在使用的express版本设置配置。然后,表单方法将被该隐藏字段的值覆盖。

最新版本的express.js将要求你安装method-override包,然后像这样配置你的应用程序:

代码语言:javascript
复制
var methodOverride = require('method-override')
app.use(methodOverride('_method'));

旧版本可能使用:

代码语言:javascript
复制
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(express.methodOverride());

更古老的用法是:

代码语言:javascript
复制
app.use(express.bodyParser());
app.use(express.methodOverride());
票数 44
EN

Stack Overflow用户

发布于 2013-10-15 23:46:09

实际上,express.bodyParser()在3.4版本的Express和2.9版本的Connect中已被弃用。在使用express.bodyParser() explained here时存在安全问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9859287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档