我这样发送:
var url = "http://localhost:9001/v1/sanger/auth/facebook/callback",
options = {body: JSON.stringify(params), 'Content-type': 'application/json'};
request.post(url, options, function (error, response, body) {
... callbacks ...
});
我没有在路线中获得参数(尝试body
,params
和query
)
当我使用邮差(http://cl.ly/image/473e2m173M2v)时,我会在req.body
答案 0 :(得分:1)
更好的方法(我假设您已在其他地方初始化了params
变量):
request = require('request');
var options = {
url: "http://localhost:9001/v1/sanger/auth/facebook/callback",
method: 'POST',
body: params,
json: true
};
request(options, function (error, response, body) {
... callbacks ...
});
您无法获得body
,因为当您致电JSON.stringify(params)
时,您正在将params
转换为字符串,而您却没有一个json
对象了。如果您将信息发送为plain/text
,但告诉request
您想要json
,那么您的快递应用无法验证content-type
,可以查看:
request.get('Content-Type'); // returns undefined
由于您需要json
对象,因此您不应该这样做。只需传递json
对象,就像上面的示例一样。
然后,在您的路线代码中,您可以执行req.body
或req.param('a_param')
(对于json
的特定键)来获取这些值。