今天我发现了错误
Blocked loading mixed active content "http://ip-api.com/json/?callback=jQuery2240797948164524662_1471014635124&_=1471014635125"
。
这是我的代码
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。 但我很好奇,为什么第二个例子中没有错误?
答案 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"]);
});
}