簡體   English   中英

無法通過JavaScript從localhost調用API

[英]Cannot call API by JavaScript from localhost

我試圖從API中提取數據並在HTML頁面中顯示獲取的數據。 我的問題是我實際上無法訪問API數據,因為狀態為0statusText為空。 我用XAMPP運行我的頁面。

 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 = "<table>"; for(i = 0; i < arr.length; i++) { out += "<tr><td>" + arr[i].name + "</td><td>" + arr[i].films + "</td><td>" + arr[i].gender + "</td></tr>"; } out += "</table>"; document.getElementById("id01").innerHTML = out; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone-localstorage.js/1.0/backbone.localStorage-min.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js"></script> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>swapi</title> </head> <body> <div id="id01"></div> </body> </html> 

問題可能是您只在發送請求后才附加處理程序。 嘗試:

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();

由於你在jQuery中使用backbone,你可以使用$.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);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM