jQuery在浏览器中显示JSON结果,但不显示结果

时间:2019-04-10 02:58:30

标签: javascript jquery

我有一个提供IP地址地理位置的代码:

// set endpoint and your access key
var ip = '134.201.250.155';
var access_key = '771d15ae7a7e93262786cc48009bac80';
console.log('http://api.ipstack.com/' + ip + '?access_key=' + access_key);
// get the API result via jQuery.ajax
jQuery.ajax({
    url: 'http://api.ipstack.com/' + ip + '?access_key=' + access_key,   
    dataType: 'jsonp',
    success: function(json) {

        console.log(json);
 
        // output the "capital" object inside "location"
        console.log(json.location.capital); 

    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

URL为:http://api.ipstack.com/134.201.250.155?access_key=771d15ae7a7e93262786cc48009bac80

它在浏览器中运行良好,并以JSON格式提供输出。但是警报不会在代码中执行。我不知道为什么。

请注意,该服务是免费的,而access_key对所有用户都是免费的,因此没有安全问题。

注意:我放弃并使用了另一项服务:https://ipapi.co/json/此URL正常工作,并且在控制台和代码中均给我正确的结果。谢谢大家的支持。

2 个答案:

答案 0 :(得分:1)

您必须使用https api.ipstack端点,因为您的站点是https,并且browser security不允许您在https网站上使用http调用。

我尝试对ipstack进行https调用,但您的订阅不支持。

您必须pay

答案 1 :(得分:1)

实际上ajax调用失败,您可以使用.fail()错误处理程序进行检查:https://jsfiddle.net/Lf6v7xcp/