geo_ip.js无效

时间:2015-03-04 10:51:15

标签: javascript geoip

我正在使用"http://j.maxmind.com/app/geoip.js"进行多语言网站支持,但this link会导致404错误。

这是错误

Failed to load resource: the server responded with a status of 404 (Not Found)
www.globalenglish.com/:913 Uncaught ReferenceError: geoip_country_code is not defined
chrome-extension://gllmlkidgbagkcikijiljllpdloelocn/contentscript.js:1849 www.globalenglish.com
getuid:1 GET https://api.bizographics.com/v2/getuid?api_key=422935bcbfc445d59f10758c288c…I%252bJLufjW0EE6tV4BHMF43u8yA9qpnPTK8G7tGxJuiy5ReJz%252fscH55wHNbnsJU%253d 403 (Forbidden)

enter image description here

我检查site here 是否有新链接,this link会抛出401错误。

我还检查了新的API here但这对我来说也不起作用。 JS Link工作但geoip_country_code() is undefined

enter image description here

如何让它再次运作!!!!这是fiddle

谢谢

3 个答案:

答案 0 :(得分:4)

不幸的是,Maxmind并没有通过

提供geoip api
http://j.maxmind.com/app/geoip.js

了。虽然它提供了另一个api

http://js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js

然而,根据Maxmind的网站,它需要域名注册等。下面的链接是旧api的克隆,现在有效约一年。

http://geoapi123.appspot.com/

我刚刚将其用于开发阶段的一个项目,以便快速解决问题。但我强烈建议您再次根据可信赖的服务更新您的代码。

一个工作jsfiddle,展示在here上可以发挥的作用;它显示了这段代码:

$.ajax( {
            type: 'GET',
            url: '//geoapi123.appspot.com/',
            dataType: 'script',
            cache: true,
            success: function() {
                var geo = geoip_country_code() + '|' + geoip_region_name() + '|' + geoip_city() + '|' + geoip_latitude() + '|' + geoip_longitude();
                $('#results').html(geo);
            }
        });

答案 1 :(得分:1)

实际上,您可能错过了控制台中的消息:

  

GeoIP2 JavaScript API的用户必须在其中注册其域名   https://www.maxmind.com/en/javascript_domains

加载库失败,因为向js.maxmind.com域发出请求,并将当前主机名(在您的情况下为fiddle.jshell.net)作为引荐来源,以确保客户端实际发出请求授权主机名。

答案 2 :(得分:1)

我正在使用此脚本,但是我不知道为什么当我尝试重定向时HTTPS不起作用..仅适用于HTTPS

    $.ajax({
        url: "http://api.petabyet.com/geoip",
        success: function(data) {
            switch (data.country_code) {
                case 'DE':
                    window.location.href = "https://google.com/de";
                    break;
               
                
            }
        }
    })

</script>