我正在尝试使用javascript对谷歌apis进行简单的调用。
我正在尝试的工作代码示例在这里:
function Get(myurl) {
var Httpreq = new XMLHttpRequest();
Httpreq.open('GET', myurl, true);
Httpreq.send();
console.log(Httpreq.responseText);
return Httpreq.responseText;
}
url = "https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510×tamp=1331161200";
tz = JSON.parse(Get(url));
它一直给我一个错误,我从控制台日志中知道Httpreq是空的,但为什么呢?如果我直接去网址,那里显然有数据。
谢谢!
答案 0 :(得分:0)
您需要使用Httpreq.onreadystatechange()
函数来侦听响应,因为这是一个异步函数,您不会立即从API获取数据,因此return
语句在Get()
内无效功能。
function Get(myurl) {
var Httpreq = new XMLHttpRequest();
Httpreq.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
};
Httpreq.open('GET', myurl, true);
Httpreq.send();
}
var url = "https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510×tamp=1331161200";
var tz = Get(url);