对freegeoip.net的AJAX请求给出“XMLHttpRequest无法加载http://freegeoip.net ....这对于需要预检的跨源请求是不允许的。”
如何在向freegeoip.net进行AJAX时获得回复(我正在尝试传递ip并对其进行地理解码,这意味着使用freegeoip.net获取lat和lng值)。
这是我的AJAX请求,它给出了上述错误:
$.ajax({
type: "GET",
url: "http://freegeoip.net/json",
contentType:'application/json;charset=utf-8',
data: {format:"json", ip:"176.58.100.115"},
crossDomain: true
}).done(function(response){
console.log("getting geo params..");
$this.city = response.city;
$this.country = response.country_name;
$this.state = response.region_name;
$this.postcode = response.zip_code;
$this.lat = response.latitude;
$this.lng = response.longitude;
console.log("finished freegeoip..");
}).fail(function(response){
console.log("failed");
});
此外,当AJAX调用失败时(CORS等,我仍然无法理解),$ .get似乎获取数据。这是我使用$ .get:
的代码$.get( "http://freegeoip.net/json/176.58.100.115").done(function(r){
console.log("getting geo params..");
console.log(r.city);
console.log(r.country_name);
console.log(r.region_name);
console.log(r.latitude);
console.log(r.longitude);
console.log("finished freegeoip..");
}).fail(function(){
console.log("failed..");
});
现在提出问题:
任何帮助表示赞赏。感谢。