关于javascript:在不使用JQuery的情况下执行$ .getJSON

Perform $.getJSON without using JQuery

本问题已经有最佳答案,请猛点这里访问。

如何仅使用javascript获取国家/地区代码,我不允许使用jQuery。

我见过像http://ipinfo.io这样的网站,但是所有的例子都使用了JQuery getJson,我可以实现相同的方法:

1
2
3
4
5
var country_code = null;
$.getJSON('http://ipinfo.io/' + userip, function(data){
    country_code = data.country;
    alert(country_code);
});

我尝试了以下方法,但它返回了一个页面:

1
2
3
4
5
var request = new XMLHttpRequest();

request.onload = function(elements) { console.log(elements); };
request.open("get","http://ipinfo.io", true);
request.send();


工作范例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var someIp = '8.8.8.8';
var xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = function() {
  if (xmlhttp.readyState == XMLHttpRequest.DONE) {
    if (xmlhttp.status == 200) {
      document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
    }
    else if (xmlhttp.status == 400) {
      alert('There was an error 400');
    }
    else {
      alert('something else other than 200 was returned');
    }
  }
};

xmlhttp.open("GET","//ipinfo.io/"+someIp+"/json", true);
xmlhttp.send();
1
  pending

仅当附加了正确的请求JSON的头时,ipinfo.io服务才返回JSON格式。 但是也可以使用/json直接在请求网址中轻松指定。