为什么阻止加载混合活动内容?

时间:2016-08-12 15:18:27

标签: jquery https mozilla

今天我发现了错误

Blocked loading mixed active content "http://ip-api.com/json/?callback=jQuery2240797948164524662_1471014635124&_=1471014635125"

在Firefox中

这是我的代码

function getCurrentWeather(){
  $.getJSON("http://ip-api.com/json/?callback=?", function(data) {
      var lat=data["lat"];
      var lon=data["lon"];
      updateWeatherDisplay(lat,lon);         
      updateAddress(data["city"],", "+data["region"]);
    });
}

但这是其他代码,它对api进行等效查询 - 没有错误!:

function getLocation() {
    $.get('http://ip-api.com/json', function(loc) {
        $('#location').text(loc.city + ', ' + loc.region + ', ' + loc.country);
        getWeather(loc.lat, loc.lon, loc.countryCode);
    })
    .fail(function(err) {
        getWeather();
    });
}

这两个示例都在https://codepen io。

上运行

我已经知道我应该使用https://来调用api。 但我很好奇,为什么第二个例子中没有错误?

1 个答案:

答案 0 :(得分:1)

因为https://codepen/使用安全 https 协议)而http://ip-api.com使用不安全(http协议)

ip-api.com目前不支持 https,如果他们支持https,您可以使用安全 https 协议){{3 }}

function getCurrentWeather(){
  $.getJSON("https://ip-api.com/json/?callback=?", function(data) {
   var lat=data["lat"];
   var lon=data["lon"];
   updateWeatherDisplay(lat,lon);         
   updateAddress(data["city"],", "+data["region"]);
  });
}