我有一个for循环调用27次天气api(27个不同的坐标)。
var input = {
query: coords[1] + ',' + coords[0] ,
format: 'JSON',
fx: ''
};
var url = _PremiumApiBaseURL + "marine.ashx?q=" + input.query + "&format=" + input.format + "&fx=" + input.fx + "&key=" + _PremiumApiKey;
request(url,function (err, resp, body){
body = JSON.parse(body);
返回的正文是字符串类型。 问题是,在执行JSON.parse时,有时我会得到下面显示的错误,有时候不会。有时它确实3确定然后抛出错误,有时7,有时只有1或有时27确定并且没有抛出错误。我无法看到问题在哪里,因为27个返回的数据对象总是相同的。
SyntaxError: Unexpected token <
at Object.parse (native)
at Request._callback (/Users/nofunat88/Documents/test/nodejs-express-ajax-test/borrar_final.js:111:29)
at Request.self.callback (/Users/nofunat88/Documents/test/nodejs-express-ajax-test/node_modules/request/request.js:129:22)
at Request.EventEmitter.emit (events.js:98:17)
at Request.<anonymous> (/Users/nofunat88/Documents/test/nodejs-express-ajax-test/node_modules/request/request.js:873:14)
at Request.EventEmitter.emit (events.js:117:20)
at IncomingMessage.<anonymous> (/Users/nofunat88/Documents/test/nodejs-express-ajax-test/node_modules/request/request.js:824:12)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
at process._tickCallback (node.js:415:13)
此致
答案 0 :(得分:1)
您应检查请求期间是否发生错误,然后 - 解析正文。
request(url,function (err, resp, body){
if (err) {
console.log(err);
} else {
body = JSON.parse(body);
}