请求js库JSON输入的意外结束

时间:2016-08-10 14:38:24

标签: javascript json node.js express httprequest

我在node.js和Express v4.0上运行服务器

我正在使用请求library 未捕获的SyntaxError:JSON输入的意外结束 然后从服务器回复响应我得到响应但没有最后一个符号("}")所以当我尝试解析JSON时它会抛出错误。 问题是,如果我使用Chrome的xmlhttprequest执行相同的请求,它可以使用相同的标题和相同的身体

请求参数:

request({
                    method:"POST",
                    jar:true,
                    url:host+"/api/location",
                    form:{
                        longitude:elem.longitude,
                        latitude:elem.latitude
                    },
                    followAllRedirects:true
                },(err,res,body)=>{
                    logger.log(body);
                    body = JSON.parse(body);
                    assert(!body.success);
                    assert(body.longitude != elem.longitude && body.latitude != elem.latitude);
                    done();
                });

响应是在快递中回复错误的代码:

res.send(JSON.stringify(({
  error:"Unknown",
  errorCode:errorCode,
  success:false,
  "-_-":"_-_"
})));

最后一个字段是尝试发送另一个字段并检查其他字段是否格式错误。并且它没有变形,但仍然是最后的符号没有被收回。

我也尝试使用res.json()与相同的身体但没有成功。同样的结果。

我能做什么?无论如何要找到问题在哪里?

2 个答案:

答案 0 :(得分:0)

您不需要对JSON进行字符串化并解析结果。您应该能够将JSON作为响应发送,并且请求回调中的“body”应该包含响应中的JSON。

答案 1 :(得分:0)

我修好了。

由于某些原因,服务器端出现错误。

res.json()。end()使用了两次。所以身体已经发送,我试图添加其他东西。这是奇怪的行为