2014-11-04 97 views
5

我想通过POST数据从流星外部的铁路由器路由,但它不工作。请求正文为空。流星铁路由器如何获得POST数据

我已经尝试输出请求体来检查数据是否存在,但它只是空的。

Router.route('/api/gatewaysusers', function() { 
     body = this.request.body; 
     console.log(this.request) 
     // this.response.write(body); 
     this.response.end("Call served"); 


}, {where: 'server'}) 

任何想法?谢谢。

+0

可能的重复[如何访问流星中的请求参数?](http://stackoverflow.com/questions/11799079/how-do-i-access-request-parameters-in-meteor) – 2014-11-05 02:26:54

+1

@ChristianFritz它是不是重复的。这里的代码非常好,问题出在'铁路由器'方面。 – 2014-11-05 08:16:06

回答

8

request.body是空的,因为iron-router缺少负责提取网址编码数据的中间件。这是一个BUG,这将有望在以后的版本中解决。现在你可以添加:

Router.onBeforeAction(Iron.Router.bodyParser.urlencoded({ 
    extended: false 
})); 

你的服务器上的某个地方,它应该可以正常工作。请查看here了解更多详情。

+0

这是行得通的,谢谢。现在我可以使用this.request.body得到身体。 – DanteDiaze 2014-11-05 09:47:43

+2

这似乎是固定的,'this.request.body'现在有所有的数据没有这个额外的电话。 – romaroma 2015-12-17 16:58:55

+0

@romaroma您是否确切知道在哪个版本的IR中解决了问题? – 2016-04-14 08:28:25

相关问题