2017-01-02 27 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文本,这会产生错误。