无法从本地主机通过JavaScript调用API。
无法从本地主机通过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 = "
" + arr[i].name + " | " + arr[i].films + " | " + arr[i].gender + " |
\n
swapi
无法从本地主机调用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的问题的方法。