geo_ip.js 不工作
Posted
技术标签:
【中文标题】geo_ip.js 不工作【英文标题】:geo_ip.js is not working 【发布时间】:2015-03-04 10:51:14 【问题描述】:我使用"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)
我检查了site here 的新链接,this link 抛出 401 错误。
我还检查了新的 API here,但这对我也不起作用。 JS 链接有效,但 geoip_country_code() is undefined
如何让它再次工作!!!!这里是fiddle
谢谢
【问题讨论】:
这个链接好像没有了,js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js还有其他版本的geoip(2.1)可以使用。 它抛出错误geoip_country_code() is undefined
【参考方案1】:
很遗憾,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);
);
更新: 我意识到这个答案仍然很有吸引力。请注意,我写这篇文章已经有好几年了。我共享的 URL 似乎不再有效。现在也有更好的方法来处理这个问题。
【讨论】:
谢谢我会检查这个 你能分享你的代码以便更好地理解......或者创建一个 jsfiddle 会非常有用......非常感谢 嘿@hitesh,很抱歉回答迟了。不幸的是,maxmind 似乎不再提供免费的 api。虽然我不确定购买过程,但link 提供了一些有关它的详细信息。对于 jsfiddle 你可以参考这个link 我也在更新答案。如果您对答案感到满意,请标记为答案。 我可以将它用于生产吗? 很遗憾,我不能这么说。我认为你应该找到一个更可靠的来源或为他们的 v2 api 付费给 maxmind。 (不过,我做了一项研究,发现这个 api 已经工作了一年。)【参考方案2】:其实控制台中有一条消息你可能错过了:
GeoIP2 javascript API 的用户必须在 https://www.maxmind.com/en/javascript_domains
库的加载失败,因为向js.maxmind.com
域发出请求,并使用您当前的主机名(在您的情况下为fiddle.jshell.net
)作为引荐来源,以确保客户端实际上是从授权主机名发出请求。
【讨论】:
是的,您必须在maxmind.com/en/javascript_domains 注册一个域......或者使用免费使用的库,但这超出了此答案的范围。【参考方案3】:大家好,我正在使用这个脚本,但我不知道为什么当我尝试重定向时 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>
【讨论】:
以上是关于geo_ip.js 不工作的主要内容,如果未能解决你的问题,请参考以下文章
随机 SQL 连接问题。工作,然后不工作,然后工作,然后 BAM!再也不会工作了?
修改 VBA 使其在两个工作簿之间工作,而不是在两个工作表之间工作