koa+koa-router+koa-body,post提交的数据为空
前端代码如下:
<form action="http://localhost:3131/users" method="POST" enctype="multipart/form-data" target="_blank">
<fieldset>
<label for="name">Name:</label>
<input type="text" id="name" name="name"/>
</fieldset>
<fieldset>
<label for="age">Age:</label>
<input type="text" id="age" name="age"/>
</fieldset>
<fieldset>
<label for="wl">Wl:</label>
<input type="text" id="wl" name="wl"/>
</fieldset>
<fieldset>
<input type="submit" value="Submit"/>
</fieldset>
</form>
后台代码如下:
是抄的别人的:代码来源
var app = require('koa')(),
router = require('koa-router')(),
koaBody = require('koa-body')();
router.post('/users', koaBody,
function *(next) {
console.log(this.request.body);
// => POST body
this.body = JSON.stringify(this.request.body);
}
);
app.use(router.routes());
app.listen(3131);
console.log('curl -i http://localhost:3131/users -d "name=test"');
可以最好的结果却是:this.request.body是{}。空对象,我都快疯了。怎么办啊?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我开发中也遇到了这个问题,其实很简单:
问题出在koa-body这个包的配置中,要支持enctype="multipart/form-data"的表单的话,必须改
这个后台代码 我测试了 没问题
curl -i http://localhost:3131/users -d "name=test
你用这个页面可能有问题
你确定你的浏览器直接能本地网页提交?
反正 后台程序 肯定是没问题的
curl测试没问题 肯定不会有问题的
首先看你发的post的请求是否正确,我也遇到接受不到request.body情况,发现是我写post请求有问题!
一定要有这个
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");