2014-09-05 67 views
1

我注意到,在運行下面的ajax函數後,「加載」指示燈繼續旋轉。我嘗試了幾個選項,但都沒有工作。這發生在所有3種瀏覽器(IE,Firefox和Chrome)中。我使用了Chrome的「檢查元素」,但沒有在網絡標籤上顯示。我究竟做錯了什麼?瀏覽器在運行使用json的ajax函數後繼續加載(加載指示燈繼續旋轉)

此外,你可能會注意到我試圖做一個循環打印所有的項目沒有任何成功。如果有人能告訴我如何編寫一個循環來打印這些信息,我將不勝感激。感謝您的時間。

<html> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
    <script> 
     $.ajax({ 
      url: 'http://api.wmata.com/Rail.svc/json/JStations?LineCode=GR&api_key=kfgpmgvfgacx98de9q3xazww', 
      dataType: 'jsonp', 
      async: false, 
      timeout: 5, 
      success: function(data){ 
       // $.each(data, function() { 
       // $.each(this, function(key,value){ 
       // alert (key); 
       //}) 
       // $.each(data, function(i,v){ 
       //$('#div_id').append(v.Stations.Address.City); } 
       var name = data.Stations[0].Address.City; 
       var name2 = data.Stations[0].Code; 
       var name3 = data.Stations[0].Name; 

       document.write(name+" "+name2+" "+name3); 
      } 
     }); 
    </script> 
</html> 

回答

2

我修改您的代碼,而不是使成功的功能AJAX的屬性,我把它綁定到AJAX本身就像這樣。

$.ajax({ 
    url: 'http://api.wmata.com/Rail.svc/json/JStations?LineCode=GR&api_key=kfgpmgvfgacx98de9q3xazww', 
    dataType: 'jsonp', 
    async: false, 
    timeout: 5, 
}).success(function(data){ 
    $.each(data.Stations, function(i,v){ 
    $('body').append(' '+v.Address.City); 
    }); 
}); 
+0

我看不出有什麼不同。另外,由於SOP,您需要'jsonp'而不是'json'。 – 2014-09-05 05:41:55

+0

感謝您的迴應,我嘗試了您提供的代碼並正確輸出了信息,但瀏覽器的加載指示燈仍在旋轉。我正在檢查我的原始代碼,並在刪除了「document.write(name +」「+ name2 +」「+ name3);」瀏覽器的加載指示器工作正常。是否有另一種打印內容的方式? – speedracer2003 2014-09-05 06:00:13

+0

哦,是的我修改了我的答案,你可以得到它,例如你想獲得你可以使用的名字v.Name給它一個嘗試或console.log(v)內$ .each – loki9 2014-09-05 06:11:41