【问题标题】:Get state from ip从ip获取状态
【发布时间】:2017-04-03 15:11:12
【问题描述】:

我正在尝试使用...从 freegeoip 获取 region_code

$.getJSON('http://freegeoip.net/json/', function(location) {
console.log(location);

它返回一个对象如下...

city: "Medford"
country_code: "US"
country_name: "United States"
ip: "69.142.34.172"
latitude: 39.8741
longitude: -74.809
metro_code: 504
region_code: "NJ"
region_name: "New Jersey"
time_zone: "America/New_York"
zip_code: "08055"

我需要获取 region_code,如果它是“NJ”,是否重定向到不同的 URL?

我试过了……

var t = JSON.parse('{"city": "", "country_code": "", "country_name": "", "ip": "", "latitude": "", "longitude" :“”,“metro_code”:“”,“region_code”:“”,“region_name”:“”,“time_zone”:“”,“zip_code”:“”}'); console.log(t['region_code']);

但在控制台中什么也没看到。

【问题讨论】:

  • “我试过这个”——你为什么尝试忽略你得到的数据,构造一些没有数据的新 JSON,解析那个 JSON,然后读取你已经设置为空字符串的值?为什么不使用从 HTTP 请求返回的数据?
  • 在询问之前先尝试一些东西做得很好,但您似乎没有调查正确的问题,并且记录了您创建的空白属性...
  • 我假设即使我得到一个 JSON,我仍然需要解析它以获得我需要的键的值。因此,如果我得到一个有效的 JSON,我怎样才能得到其中一个键的值?至于我在尝试什么,我遵循了来自 SO 帖子 link 的建议

标签: javascript json geolocation


【解决方案1】:

试试这个...

$.getJSON('http://freegeoip.net/json/', function(location) {
    if (location.region_code == "NJ") {
        window.location.href = "anotherPage.html";
    }
});

假设您显示的数据是返回的数据,那么这将满足您的需求。

【讨论】:

  • 这并没有触发新页面,但这确实... window.location.href = 'anotherPage.html'; 谢谢!
  • 不客气。我将更新答案以供将来参考。谢谢:)
猜你喜欢
  • 1970-01-01
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2016-02-07
  • 1970-01-01
  • 2016-02-21
相关资源
最近更新 更多