2017-05-24 65 views
-2
$(document).ready(function(){ 
    var long1; 
    var lat; 
    var ftemp; 
    var ctemp; 
    var ktemp; 
    $.getJSON("http://ip-api.com/json",function(data2){ 
     lat=data2.lat; 
     long1=data2.lon; 
     var api='http://api.openweathermap.org/data/2.5/weather?lat='+lat+'&lon='+long1+'&appid=46fdba69aa7710295a227debc481af55'; 
     $.getJSON(api,function(data){ 
      var weatherType=data.weather[0].description; 
      ktemp=data.main.temp; 
      var windspeed=data.wind.speed; 
      var city=data.name; 
      var tempswap=true; 
      ftemp=((ktemp)*(9/5)-459.67).toFixed(2);//temp in fahrenheit 
      ctemp=(ktemp-273).toFixed(2);//temp in calcius 
      console.log(city); 
      $("#city").html(city); 
      $("#weatherType").html(weatherType); 
      $("#ftemp").html(ftemp); 
      $("#ftemp").click(function(){ 
       if(tempswap===false){ 
        $("#ftemp").html(ftemp+" &#8457 ;"); 
        tempswap=true; 
       }else{ 
        $("#ftemp").html(ctemp+" &#8451 ;"); 
        tempswap=false; 
       } 
      }); 
      windspeed =(2.237*(windspeed)).toFixed(1); 
      $("#windspeed").html(windspeed + " mph"); 
      if(ftemp>80){ 

      }else if(ftemp>70){ 
       $('body').css('background-image','url()'); 
      } 

     }); 

    }); 
}); 

我不知道什么是错的。我什么都不能工作(即使控制台不工作)。如何解决为什么以下jQuery代码不起作用?

+0

您需要更具体的实际问题是什么

http请求被阻塞。你想做什么? – Ken

+0

您的代码在控制台中返回错误... 混合内容:'https://codepen.io/manash23/pen/oWmKje?editors=1010'页面通过HTTPS加载,但请求不安全的XMLHttpRequest端点'http://ip-api.com/json'。此请求已被阻止;内容必须通过HTTPS提供。 – Ken

回答

1

您的端点有问题。

第一个问题是您需要使用https访问它而不是http。在解决第一个问题之后第二个问题得到错误。

GET https://ip-api.com/jsonnet :: ERR_CONNECTION_REFUSED错误。

+0

嗨,感谢您指出...... bdw能否建议我使用其他api来获取我当地的经纬度? – Manash23

+0

请参阅此[链接](https://stackoverflow.com/questions/3490622/get-latitude-and-longitude-based-on-location-name-with-google-autocomplete-api)。接受它帮助你的答案 –

0

之所以被stackoverflow.com装有https,而您试图通过jQuery Ajax发送请求被阻止,因为要求APIhttp://ip-api.com/json。在https