gpt4 book ai didi

javascript - getJSON 函数仅从本地主机上的 url 获取数据

转载 作者:行者123 更新时间:2023-11-30 11:14:04 26 4
gpt4 key购买 nike

我使用下面的函数从 api 获取大陆代码,它在本地主机上工作正常但在网站的实时环境中失败

$.getJSON('//www.geoplugin.net/json.gp?jsoncallback=?', function (data) {
// console.log(JSON.stringify(data, null, 2));
console.log(JSON.stringify(data.geoplugin_continentCode));
});

我在控制台看到的警告是

Loading failed for the with source “https://www.geoplugin.net/json.gp?jsoncallback=jQuery16407901144106031991_1537089290623&_=1537089292750”.

我不确定为什么它在网站上失败 https://www.example.com

SSL 版本会不会有一些问题,因为我不确定,因为我在 fiddle 上尝试过,它工作正常 http://jsfiddle.net/om8ahkp3/

更新

由于问题是由于跨域问题引起的,因为此 api 为 ssl 版本使用了不同的 url。我无法使用此 ssl 版本,因为它不是免费的。

因此最终使用了另一个具有免费选项的 API,该 API 也限制为每月 50k 请求。

$.ajax({
url: 'https://api.ipgeolocation.io/ipgeo?fields=is_eu& excludes=ip&apiKey=YOURKEY',
dataType: 'json',
success: function (json) {
console.log("json.is_eu " + json.is_eu);
}
});

最佳答案

整个问题是什么?您想访问第三个站点 (crossDomain)。 因此,该站点决定您是否可以访问它。当一个站点提供一项服务(类似于您使用过的geo 服务)时,它决定了它的哪部分服务是免费的。

在您的情况下,如果您的源站点的协议(protocol)是 http(例如 localhost)并且目标站点(服务提供商站点)是 http同样,您可以使用上述代码访问此地理服务(因为第三个站点现在允许这样做)。但是,如果您想从 https 站点访问此服务(我想您现在正在尝试),geoPlugin 不允许您轻松或免费!

在这种情况下,目标站点提供另一个 url 并定义用户级别(以获取特殊服务的钱。)。

实际上,如果您的目标站点也是您自己的站点(在本例中不是),您可以添加对特定引荐站点的所需访问权限,但现在...

我查看它的网站以确保。在这种情况下,您必须使用此网址:

https://ssl.geoplugin.net/json.gp?k=yourAPICode

但这还不是全部!上面 url 中的 k 是什么?本站writes :“对于 SSL 访问,需要一个 API key 来抵消证书价格和每年 12 欧元的费用。”

我不知道,但如果你需要它,你应该搜索免费插件(如果存在)或购买它。

关于javascript - getJSON 函数仅从本地主机上的 url 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52352712/

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