我正试图从http://openweathermap.org/获取当前天气。首先,我使用html5 geolocation api获得经度和纬度。我能够成功地做到这一点。接下来我尝试使用ajax对openweather进行ajax调用以获取当前的天气状况,但是ajax调用不成功。这是我的代码。请帮我确定一下这个问题。
window.onload = getLocation();
function getLocation()
{
if(navigator.geolocation) {
// The coordinate object of the location is passed to the displayWeathe function
navigator.geolocation.getCurrentPosition(displayWeather);
}
else { // geolocation not supported
var msg = document.getElementById("content");
msg.innerHTML = "Geolocation not supported in your browser!!";
}
}
function displayWeather(position) {
// Get the Latitude and Longitude
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
// url for openweather api
var url = "api.openweathermap.org/data/2.5/weather?lat="+latitude+"&lon="+longitude+"&APPID=<my_key>";
alert(url);
// get weather from OpenWeather Map
$.ajax({
dataType: "jsonp",
url: url,
method:"GET",
jsonCallback: 'jsonp',
cache: false,
success: function (data) {
alert("Success");
},
error: function(data) {
alert("OOPS");
}
});
我也试过这个而不是ajax调用。这也行不通。
$.getJSON(url,function(json){
alert("Success");
}).fail( function(json, textStatus, error) {
alert("getJSON failed, status: " + textStatus + ", error: "+error)
});
网址是正确的,当我在浏览器中复制粘贴网址时,我得到了JSON响应。您可以看到实时演示here