环境: Node.js和Express
我正在使用HTML表单通过POST
请求提交数据,它可以按预期工作。但是,当我将其切换为PUT
请求时,我收到了404 error
。在地址栏中,我从表单获取req.body。
http://localhost:8080/save_register?email=test%40gmail.com&firstName=hello&lastName=world&phone=555-555-5555&password=11111&passwordConfirm=11111
为什么会这样呢?以下是使用该PUT
请求的服务器的简化版本。
来自middleware.js文件。
router.get('/register', function(req, res) {
res.render('register');
});
router.put('/save_register', function(req, res) {
// lets of processing req.body here...
if(itWorked === true) {
return res.redirect('/register_success');
} else {
res.render('register');
}
});
router.get('*', function(req, res) {
res.status(404).render('page_not_found');
});
从register.ejs文件中。
<form action="/save_register" method="PUT">
在middleware.js中,router.put
将更改为router.post
和,在register.ejs中将method="PUT"
其更改为method="POST"
按预期工作。我必须缺少明显的东西,但看不到。
HTML表单PUT
仅支持GET
和POST
。如果为form方法指定aGET
或a之外的其他内容POST
,则浏览器会将其视为a GET
,因此这就是为什么您看到URL中发送的所有数据的原因。
您已经发现,这里有一个很好的描述:为什么HTML表单上没有PUT和DELETE方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句