我想知道如何使用JavaScript来使用此服务的输出。
这是无效的JSON
http://geoiplookup.wikimedia.org/
修改 以下是我希望检索数据的方法:
$.ajax('http://geoiplookup.wikimedia.org/', {
crossDomain:true,
success:function(data,text,xhqr){
alert(data);
},
error:function(jqXHR, textStatus){
console.log(textStatus);
}
});
答案 0 :(得分:2)
我看到它的响应包含一个字符串,可以使用简单的JS轻松处理。试试这个。
var geoStr = 'Geo = {"city":"Woodbury","country":"US","lat":"39.824001","lon":"-75.131798","IP":"98.110.51.114","netmask":"24"};';
var geoJSON = geoStr.split('=')[1];
geoJSON = $.parseJSON(geoJSON.substring(0, geoJSON.length -1));
console.log(geoJSON);
正在使用 Demo
答案 1 :(得分:0)
jQuery和AJAX将成功。像ShankarSangoli所说,这将跨域工作。 这是一个有效的例子:
var query = "select * from html where url='http://geoiplookup.wikimedia.org'"
var encodedQuery = encodeURIComponent(query.toLowerCase()),
url = 'http://query.yahooapis.com/v1/public/yql?q=' + encodedQuery + '&format=json&diagnostics=true&callback=?';
$.ajax({
dataType: "json",
url: url,
async: false,
success: function (data) {
var w = data.query.results.body.p;
var geoJSON = w.split('=')[1];
geoJSON = $.parseJSON(geoJSON);
var latitude = geoJSON.lat;
var longitude = geoJSON.lon;
console.log('Geo IP: ('+ latitude + ' - ' + longitude +')');
}
});
如果您正在使用HTML5地理位置后备方法,也可以尝试这些链接: http://www.geoplugin.net/json.gp http://freegeoip.net/json/