处理来自POST请求的JSON响应

即时通讯发送POST请求到一个oauth服务器读取JSON响应时遇到麻烦。 这是我的POST代码:

var request = require("request"); var querystring = require('querystring'); var postData={ grant_type: 'code', code: code, redirect_uri: uri, nonce: nonce }; request.post({ uri: oauth_token_uri , headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': oauth_code }, body: querystring.stringify(postData) }, function(err,res, body){ console.log("BODY:" + res.body); console.log("BODY: " + body); console.log("Access Token:" + res.body.access_token); console.log("Access Token:" + body.access_token); }); 

这是控制台中的输出:

 BODY:{"access_token":"somecode","refresh_token":"somecode","expires_in":900,"token_type":"bearer","id_token":"someTokenID"} BODY:{"access_token":"somecode","refresh_token":"somecode","expires_in":900,"token_type":"bearer","id_token":"someTokenID"} Access Token:undefined Access Token: undefined 

我在这里做错了什么?

尝试跟随,

 request.post({ uri: oauth_token_uri , headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': oauth_code }, body: querystring.stringify(postData) }, function(err,res, body){ var parsedResponseBody = JSON.parse(body); console.log("Access Token:" + parsedResponseBody.access_token); }); 

您以String格式获得响应。 您将首先需要parsingJSON对象中的响应。