jQuery ajax call with OpenWeatherMap - net::ERR_CO

2019-07-29 11:38发布

问题:

I want to get weather from OpenWeatherMap API based on latitude and longitude, but I'm getting error

net::ERR_CONNECTION_REFUSED

Project is on codepen.io

var appid = "myID";

function getLocation() {
  $.getJSON('https://geoip-db.com/json/geoip.php?jsonp=?') 
        .done (function(location)
        {
          $('.country').html(location.country_name);
          $('.city').html(location.city);
          var lat = location.latitude;
          var lon = location.longitude;
          var weatherLink = "https://api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + lon + "&appid=" + appid + "&callback=?";
          $('body').append(weatherLink);
          $.ajax({
              url: weatherLink,
              dataType: "jsonp",
              success: function(response) {
                  $('body').append(response);
              }
          });  
        });
}

$(document).ready(function() {
  getLocation();
});

I'm using https://geoip-db.com/ to get latitude and longitude. URL (weatherLink) is correct. Full error:

GET https://api.openweathermap.org/data/2.5/weather?lat=51.1&lon=17.0333&appid=…0b9873ed&callback=jQuery22406914555127333375_1469796455615&_=1469796455617 net::ERR_CONNECTION_REFUSED

回答1:

Your APPid is wrong, just sign up for an account and get a key from the site. You need a valid ID or it will refuse your connection.

http://openweathermap.org/appid#get

link me your codepen and I can take a closer look if you'd like.

Also, if you want to append the information from the site, you need to specify the parameters you want, otherwise your going to get a bunch of nonsense.