处理来自 POST-请求的 JSON 响应

Handle JSON response from POST-request

我在向 oauth 服务器发送 POST 请求时无法读取 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 格式的回复。您首先需要在 JSON 对象中解析该响应。