Nodejs POST请求的解析错误

时间:2017-11-14 06:43:09

标签: node.js

我希望向在localhost上运行的服务器发送请求并处理它的'回复并回复用户。

        var post_data = qs.stringify({
            'parameter':'some value'
        });

        var post_options = {
            uri: 'http://localhost:9000',

            method: 'POST',
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
                'Content-Length': Buffer.byteLength(post_data)
            }
        };

        var post_req = request(post_options,function(error,response,body){
            response.setEncoding('utf-8');
            if(response.statusCode==200)
            {
                console.log(body);
                var resp_data = JSON.parse(body);
                var result = validate(resp_data,expected_output);
                res.setHeader('Access-Control-Allow-Origin','*');
                res.writeHead(200,{"Content-Type":"application/json"});
                res.write(JSON.stringify(result));
                res.end();
            }
        });
        post_req.write(post_data);
        post_req.end();

然而,&#39>身体' 'post_req'的回调函数中的参数即使在localhost:9000上运行的服务器返回响应,也未定义。检查错误'参数,它显示'错误:解析错误'。帮帮我。

2 个答案:

答案 0 :(得分:0)

您是否正在传递JSON.parse(body)有效的JSON?如果没有,它会给你这个错误。

如果您传递看似有效的JSON,请查看this question。可能是你将它作为一个对象或数组传递。

答案 1 :(得分:0)

我找到了解决办法!

这是我在http://localhost:9000运行的后端python服务器发送了垃圾回复。

修复我在Python's BaseHTTPServer returns junky responses

找到的python服务器的解决方案