无法从本地主机通过JavaScript调用API。

10 浏览
0 Comments

无法从本地主机通过JavaScript调用API。

我正在尝试从API中获取数据,并在HTML页面中显示获取到的数据。我的问题是,实际上我无法访问API数据,因为状态是0,而statusText为空。我使用XAMPP运行我的页面。\n

var xmlhttp = new XMLHttpRequest();
var url = "http://swapi.co/api/people/1";
xmlhttp.open("GET", url, true)
xmlhttp.send()
xmlhttp.onreadystatechange=function(response) {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        myFunction(xmlhttp.responseText);
    }
}
console.log(xmlhttp.status)
console.log(xmlhttp.statusText)
function myFunction(response) {
    var arr = JSON.parse(response);
    var i;
    var out = "";
    for(i = 0; i < arr.length; i++) {
        out += "";
    }
    out += "
" + arr[i].name + "" + arr[i].films + "" + arr[i].gender + "
"; document.getElementById("id01").innerHTML = out; }

\n








  
  
  swapi



0
0 Comments

无法从本地主机调用JavaScript API的问题可能是您仅在发送请求后才附加处理程序。请尝试以下解决方法。

您可以尝试使用XMLHttpRequest对象来发送GET请求并附加处理程序:

var xmlhttp = new XMLHttpRequest();
var url = "http://swapi.co/api/people/1";
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = function(response) {
  console.log(xmlhttp.status);
  console.log(xmlhttp.statusText);
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
    myFunction(xmlhttp.responseText);
  }
};
xmlhttp.send();

如果您正在使用backbone和jQuery,可以使用$.get()方法:

$.get("http://swapi.co/api/people/1").done(myFunction);

请注意,textStatus将作为第二个参数传递给myFunction。如果这是一个问题,您可以使用以下代码:

$.get("http://swapi.co/api/people/1").done(function(data,textStatus){
  myFunction(textStatus);
});

以上是解决无法从本地主机调用JavaScript API的问题的方法。

0