gpt4 book ai didi

javascript - 从 javascript 网页获取设备 IP 地址时出现问题

转载 作者:行者123 更新时间:2023-12-03 04:00:55 28 4
gpt4 key购买 nike

我的网页中有以下 JavaScript 代码:

const configDefault = {

Bot: {
// initial sessionAttributes
sessionAttributes: {},

},

};

现在我想要的是使用用户打开该网页的设备的ip地址来设置sessionAttributes。基于this SO post我编写此代码是为了获取设备的 ip 地址,但在首先从返回的 json 对象中提取 ip 地址 时遇到问题然后集成这一部分,以便使用 ip 地址 设置上面代码中的 sessionAttributes:

function myIP() {
$.getJSON('//freegeoip.net/json/?callback=?', function(data) {
JSON.stringify(data, null, 2));
});
}

上面代码中的 json 对象返回以下示例结构。我想从中获取 ip 字段,并将其设置为顶部代码中的 sessionAttributes :

{
"ip": "116.12.250.1",
"country_code": "SG",
"country_name": "Singapore",
"region_code": "01",
"region_name": "Central Singapore Community Development Council",
"city": "Singapore",
"zip_code": "",
"time_zone": "Asia/Singapore",
"latitude": 1.2931,
"longitude": 103.8558,
"metro_code": 0
}

我是 JavaScript 新手,所以我无法找到一种方法来做到这一点。谁能帮助我以正确的方式构建这个结构?

更新:我当前的代码位于 http://js.do/code/158408 。运行时,我在 $ 符号上收到错误

const configDefault = {

Bot: {
// initial sessionAttributes
sessionAttributes: {},

},

};

function myIP() {
$.getJSON('//freegeoip.net/json/?callback=?', function(data) {
return JSON.parse(data);
});
}

const ipInformation = myIP();
configDefault.Bot.sessionAttributes.ip = ipipInformation.ip;

最佳答案

您应该使用 JSON.parse 而不是 stringify。

const ipInformation = JSON.parse(data);

console.log(ipInformation.ip);

const configDefault = {
Bot: {
// initial sessionAttributes
sessionAttributes: {},
},
};

configDefault.Bot.sessionAttributes.ip = ipipInformation.ip;

console.log(configDefault);

或者如果您想要 sessionAttributes 中的所有 ipInformation。

configDefault.Bot.sessionAttributes = ipipInformation;

由于 $.getJSON 是异步的,您需要在回调中完成所有工作:

let configDefault = {
Bot: {
// initial sessionAttributes
sessionAttributes: {}
}
};

function myIP(configDefault) {
$.getJSON("//freegeoip.net/json/?callback=?", function(data) {
const ipInformation = JSON.parse(data);
configDefault.Bot.sessionAttributes.ip = ipInformation.ip;
console.log(configDefault);
return configDefault;
});
}

configDefault = myIP(configDefault );

关于javascript - 从 javascript 网页获取设备 IP 地址时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44727321/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com