我使用节点https模块从另一台服务器获取auth信息,我得到的结果是“result = undefined {a:...,b:...}”,所以我不能使用JSON.parse来解析结果数据,但如果我使用“JSON.parse(body.substr(9))”,我可以得到正确的结果。 有关更多信息,如果我使用post工具获取结果,我得到的结果类型是“application / json”,结果是正确的json对象。我使用以下代码来获取发布结果。
var options={
hostname:...,
port:null,
path:...,
method:'post',
rejectUnauthorized:false,
requestCert:true,
agent:false
}
var https.request(options,function(res){
var body;
res.on('data',function(chunk){
body+=chunk;
});
res.on('end',function(){
console.log(JSON.parse(body));
});
});
答案 0 :(得分:1)
您应该使用空字符串初始化body
:
var body = '';
因为否则,第一次
body+=chunk;
被调用,body
为undefined
并且被连接为"undefined"
字符串:
> var body;
undefined
> body += "{}"
'undefined{}'
> var body = '';
undefined
> body += "{}"
'{}'