2016-12-02 137 views
0

我有一個調用,調出一個配方的URL ID,我試圖提供給另一個調用返回額外的配方數據,但我認爲範圍是不正確的地方。JavaScript ajax調用另一個AJAX調用

我越來越

在XMLHttpRequest.http.onreadystatechange

在Chrome

無法讀取的未定義的屬性 '身份證'。

function searchFood() { 
    var http = new XMLHttpRequest(); 
    var foodID = 'a1e1c125'; 
    var foodApiKey = 'c84a720e4f1750b59ce036329fccdc00'; 
    var foodMethod = 'GET'; 
    var url = 'http://api.yummly.com/v1/api/recipes?_app_id=' + foodID + '&_app_key=' + foodApiKey + '&q=scandinavian'; 
    http.open(foodMethod, url); 
    http.onreadystatechange = function() { 
    if (http.readyState == XMLHttpRequest.DONE && http.status === 200) { 
     var foodData = JSON.parse(http.responseText); 
     var foodName = foodData.matches[0].recipeName; 
     console.log(foodData); 
     for (var i = 0; foodData.matches.length; i++) { 
     var recipeId = foodData.matches[i].id; 
     console.log(recipeId); 
     } 

     function getRecipe() { 
     var http = new XMLHttpRequest(); 
     var foodID = 'a1e1c125'; 
     var foodApiKey = 'c84a720e4f1750b59ce036329fccdc00'; 
     var foodMethod = 'GET'; 
     var url = 'http://api.yummly.com/v1/api/recipe/' + recipeId + '?_app_id=' + foodID + '&_app_key=' + foodApiKey; 
     http.open(foodMethod, url); 
     http.onreadystatechange = function() { 
      if (http.readyState == XMLHttpRequest.DONE && http.status === 200) { 
      var data = JSON.parse(http.responseText); 
      console.log(data); 
      } else if (http.readyState === XMLHttpRequest.DONE) { 
      alert("something went wrong"); 
      } 
     }; 
     http.send(); 
     }; 
    } else if (http.readyState === XMLHttpRequest.DONE) { 
     alert('Something went wrong') 
    } 
    }; 
    http.send(); 
}; 

任何提示,將不勝感激,謝謝

+0

'爲(VAR I = 0; foodData.matches。 length; i ++)' – epascarello

+0

如果可能,請使用JavaScript承諾。 https://github.com/kriskowal/q或至少jQuery。代碼將更容易管理恕我直言。 – Raptor

回答

0

你truthy檢查始終是真實的

for (var i = 0; foodData.matches.length; i++) 

你缺少i<