Ipstack 响应是“未定义的”,文档没有解释为啥?

Posted

技术标签:

【中文标题】Ipstack 响应是“未定义的”,文档没有解释为啥?【英文标题】:Ipstack Responses are 'undefined' and the documentation does not explain why?Ipstack 响应是“未定义的”,文档没有解释为什么? 【发布时间】:2019-02-03 19:22:05 【问题描述】:

我已经使用ipstack.com 完成了设置ip-to-geolocation 的所有步骤,并通读了documentation。但是对象值在我的浏览器控制台中返回为“未定义”。代码是这样的:

var ip = '188.124.3.1';
var access_key = 'secret';
$.ajax(
    url: 'https://api.ipstack.com/' + ip + '?access_key=' + access_key,   
    dataType: 'jsonp',
    success: function(json) 
        var city = json.city;
        var zip = json.zip;
        var latitude = json.latitude;
        var longitute = json.longitute;
        console.log(city + ' ' + zip + ' ' + latitude + ' ' + longitute);
        console.log('success!');
        //the code reaches this stage, but returns as 'undefined' for each value above
        //execute a second ajax function to insert the values into a database.
        $.ajax(
            type: "post",
            url: "insert_geolocation.php",
            data: 
                    'zip': zip,
                    'lat': latitude,
                    'lng': longitute
                    ,
            success: function (data) 
                // it's successful, do nothing else.
                // the code also reaches this stage, but the database gets a row with NULL and 0 as values...So the response from the API is returning undefined, for an unknown reason.
            ,
        );
    ,
    error: function(html, data) 
        console.log('Error!');
        console.log(data);
    
);

我正在使用 jQuery 和文档中的 JSON 输出,因为我并不真正了解 CURL。谁能告诉我为什么会这样?

【问题讨论】:

【参考方案1】:

解决方案是因为我使用的是免费订阅计划,并且不提供通过“ssl”的服务。只需像这样在success函数中打印json:console.log(json),然后查看它给您带来的错误。

【讨论】:

我建议查看Ipregistry。它快速、可靠且价格低廉。支持 HTTPs 以及所有功能。我们不会要求更多免费的功能!您从 100,000 次免费查找开始(免责声明:我运行该服务)。

以上是关于Ipstack 响应是“未定义的”,文档没有解释为啥?的主要内容,如果未能解决你的问题,请参考以下文章

资源解释为“其他”,但以未定义的 MIME 类型传输。 IE 错误(Asp.net 网站)

如何从 Java 中的 RESTFul 服务向 Ipstack API 请求 GET

In-Context Checkout:没有为发布消息响应错误找到响应处理程序

如何解释蝗虫响应时间

Angular $http 错误回调响应始终未定义

Mongoose virtual正在为该字段提供未定义的响应