我正在尝试通过将 IP 地址作为输入从 www.geoplugin.net 获取国家/地区名称。它在控制台中显示错误

Posted

技术标签:

【中文标题】我正在尝试通过将 IP 地址作为输入从 www.geoplugin.net 获取国家/地区名称。它在控制台中显示错误【英文标题】:I am trying to get the country name from a www.geoplugin.net by giving ip address as input. It shows error in console 【发布时间】:2018-01-30 10:44:56 【问题描述】:

我尝试在标题中设置数据。例如: header('Access-Control-Allow-Origin: *');等,但我收到错误:“对预检请求的响应未通过访问控制检查”。

var ip_address = $('#ip_address').val();
$.ajax( 
    url: 'http://www.geoplugin.net/json.gp?ip='+ip_address,
    success: function(output) 
        $('#country_name').val(JSON.parse(output).geoplugin_countryName);
    
);

【问题讨论】:

请阅读:***.com/questions/10636611/… 解决方案可能是这样的:***.com/a/11691776/2282880 【参考方案1】:

您似乎正在尝试从 geolugin.net 的 IP 地址获取国家/地区名称。您可以尝试使用此代码,而不是 ajax 调用。它对我有用。

$.getJSON("https://cors-anywhere.herokuapp.com/http://www.geoplugin.net/json.gp?ip="+$('#ip_address').val(),function(response)
        $('#country_name').val(response.geoplugin_countryName);

    );

【讨论】:

是的,我试图在我的网站上获取访问者 IP 地址的国家/地区名称,并且您的解决方案有效。感谢您的帮助。【参考方案2】:

对于 jQuery:

// In this example, if you make an ajax request to the following website
var myUrl = 'http://www.geoplugin.net/json.gp?ip=216.58.209.68';
//  But if you make it from a browser, then it will work without problem ...

// However to make it work, we are going to use the cors-anywhere free service to bypass this
var proxy = 'https://cors-anywhere.herokuapp.com/';

$.ajax(
    // The proxy url expects as first URL parameter the URL to be bypassed
    // https://cors-anywhere.herokuapp.com/my-url-to-bypass
    url: proxy + myUrl,
    complete:function(data)
        console.log(data);
    
);

或者使用 $.get、$.getJSON 或 $.post 的快捷方式:

var myUrl = 'http://www.geoplugin.net/json.gp?ip=216.58.209.68';

var proxy = 'https://cors-anywhere.herokuapp.com/';

var finalURL = proxy + myUrl;

// With the get JSON (frequently used) method
$.getJSON(finalURL, function( data ) 
    console.log(data);
);

// With the get method
$.get(finalURL, function( data ) 
    console.log(data);
);

// With the post method
$.post(finalURL, function( data ) 
    console.log(data);
);

【讨论】:

【参考方案3】:

这可能会有所帮助

Code to get country name from ip

【讨论】:

以上是关于我正在尝试通过将 IP 地址作为输入从 www.geoplugin.net 获取国家/地区名称。它在控制台中显示错误的主要内容,如果未能解决你的问题,请参考以下文章

将 IP 地址输入 EC2 安全组规则时使用啥格式?

通过.htaccess从HTTPS重定向到IP地址到域名

XAMPP 设置使用名称而不是 IP 地址

指定 IP 地址时 syslog NG 未启动,但可作为全部捕获并写入文件设置

从 C# 中的 IP 获取本地网络上的机器 MAC 地址

使用 Vue.js 获取用户的 IP 地址 [重复]