无法从 Nominatim 的 API 获取 JSON 数据
Unable to get JSON data from Nominatim's API
我的目标是在Nominatim的API的帮助下,使用JavaScript获取世界上每个国家和地区的经度、纬度和名称,以便将它们添加为微小的和 Leaflet 世界地图中的可点击点。
使用浏览器访问 url 工作正常:
https://nominatim.openstreetmap.org/search?country=SG&format=json
我似乎无法收到任何 console.log
声明,即使是一个国家:
var XHR = new XMLHttpRequest();
XHR.onreadystatechange = function () {
if (XHR.readyState == 4 && XHR.status == 200) {
console.log(XHR.responseText);
}
};
XHR.open("GET", "https://www.nominatim.openstreetmap.org/search?country=SG&format=json");
XHR.send();
console.log(XHR);
所以,我尝试了另一种方法,但失败了:
let url = 'https://www.nominatim.openstreetmap.org/search?country=SG&format=json';
fetch(url)
.then(response => response.json())
.then(function (data) {
latitude = data.lat;
longitude = data.lon;
});
console.log(latitude);
console.log(longtitude);
请指导我哪里出错了,或者我可以用什么 API 来实现上述目标。谢谢。
在您的 URL 开头丢失 www
,nominatim
是 openstreetmap
的子域。这通常由 Web 浏览器自动完成,这就是为什么当您在浏览器中输入 URL 时它不会发生的原因
工作代码:
var XHR = new XMLHttpRequest();
XHR.onreadystatechange = function () {
if (XHR.readyState == 4 && XHR.status == 200) {
console.log(XHR.responseText);
}
};
XHR.open("GET", "https://nominatim.openstreetmap.org/search?country=SG&format=json");
XHR.send();
console.log(XHR);
我的目标是在Nominatim的API的帮助下,使用JavaScript获取世界上每个国家和地区的经度、纬度和名称,以便将它们添加为微小的和 Leaflet 世界地图中的可点击点。
使用浏览器访问 url 工作正常:
https://nominatim.openstreetmap.org/search?country=SG&format=json
我似乎无法收到任何 console.log
声明,即使是一个国家:
var XHR = new XMLHttpRequest();
XHR.onreadystatechange = function () {
if (XHR.readyState == 4 && XHR.status == 200) {
console.log(XHR.responseText);
}
};
XHR.open("GET", "https://www.nominatim.openstreetmap.org/search?country=SG&format=json");
XHR.send();
console.log(XHR);
所以,我尝试了另一种方法,但失败了:
let url = 'https://www.nominatim.openstreetmap.org/search?country=SG&format=json';
fetch(url)
.then(response => response.json())
.then(function (data) {
latitude = data.lat;
longitude = data.lon;
});
console.log(latitude);
console.log(longtitude);
请指导我哪里出错了,或者我可以用什么 API 来实现上述目标。谢谢。
在您的 URL 开头丢失 www
,nominatim
是 openstreetmap
的子域。这通常由 Web 浏览器自动完成,这就是为什么当您在浏览器中输入 URL 时它不会发生的原因
工作代码:
var XHR = new XMLHttpRequest();
XHR.onreadystatechange = function () {
if (XHR.readyState == 4 && XHR.status == 200) {
console.log(XHR.responseText);
}
};
XHR.open("GET", "https://nominatim.openstreetmap.org/search?country=SG&format=json");
XHR.send();
console.log(XHR);