【发布时间】:2019-08-18 15:52:30
【问题描述】:
我正在尝试从 OpenWeatherMap API 获取一些数据。当我使用所需的 API 密钥和位置数据发送请求时,一切都恢复正常。返回的数据似乎是 JSON 格式。但是,当我对字符串执行 JSON.parse() 函数时,会出现“输入意外结束”的错误。
我发现有趣的一件事是,如果我要将字符串存储到一个变量中,然后在 Chrome 的调试控制台中继续执行该函数,它就可以完成。
let jsonData;
let jsonActual;
function GetWeather(city, country){
Http = new XMLHttpRequest();
Http.open("GET", weatherUrl + city + "," + country + weatherKey);
Http.send();
Http.onreadystatechange=(e)=>{
jsonData = Http.response;
jsonActual = JSON.parse(jsonData.toString());
}
}
关于使用控制台:
x = JSON.parse(jsonData) // Completes successfully
【问题讨论】:
-
您没有在
onreadystatechange事件处理程序中检查readyState。只有当readyState为complete时,响应才会完成。
标签: javascript api xmlhttprequest