2017-01-02 84 views
0

我嘗試從另一個url加載json數據到我的html getJSON似乎在鉻Devtools網絡工作我可以看到數據狀態200.但我沒有得到「它有效」。ajax getJSON正確加載數據但沒有登錄控制檯

這裏是我的代碼:

<div id="demo"> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

     <script type = "text/javascript" language = "javascript"> 
      $.getJSON('/data/', function(data) { 
       console.log('it works'); 
      }) 
      .fail(function (jqxhr, status, error) { 
      console.log('error', status, error) } 
      ); 
     </script> 
    </div> 

這裏是控制檯的錯誤:

error parsererror SyntaxError: Unexpected token & in JSON at position 1 
    at parse (<anonymous>) 
    at Nb (jquery.min.js:4) 
    at A (jquery.min.js:4) 
    at XMLHttpRequest.<anonymous> (jquery.min.js:4) 

也是我使用Python的Django作爲後端。

+0

因爲它從錯誤記錄。由於'jQuery.getJSON()'是簡短的ajax調用來獲得json值,而你的後端在生成一些有效的json時有一些錯誤。 – Jai

回答

2

這裏的問題是,它已成功獲取請求,但它不是有效的JSON。 JSON轉換在這裏是不可能的。更改代碼:

<script type = "text/javascript" language = "javascript"> 
    $.get('/data/', function(data) { 
    console.log('it works'); 
    console.log(data); 
    }) 
    .fail(function (jqxhr, status, error) { 
    console.log('error', status, error) 
    }); 
</script> 

在這裏,你不會得到錯誤加,你可以檢查data是一個有效的JSON格式,那麼你可以做:

data = JSON.parse(data); 
0

您的要求是成功完成並且您得到迴應。

$.getJSON('/data/', function(data) { 
     console.log('it works'); 
}); 

由於您的回覆可能包含一些非JSON文本,這會產生錯誤。