jQuery简单的getJSON不起作用

时间:2013-09-05 21:54:30

标签: jquery json

我想加载一个简单的json文件并显示它的内容但它不起作用,我不知道为什么:(

控制台上没有显示任何内容。

<!DOCTYPE html>
<html>
<head>
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script type="text/javascript">
$(document).ready(function(){
    $.getJSON('/api/?core=users&function=getJson', function(data) {
  var items = [];
    console.log("ok!");
  $.each(data, function(key, val) {
    items.push('<li id="' + key + '">' + val + '</li>');
  });

  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('body');
});
});
</script>
</head>
<body>
<ul class="my-new-list">
<li>test</li>
</ul>
</body>
</html>

加载的JSON数据是:

{"fruit_name":"Tomato"}

你有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:6)

如果控制台中没有显示任何内容,则永远不会触发成功功能。

您的服务器请求返回200以外的内容(如404,500等)或者您返回的字符串无效JSON。

检查您的网络标签,查看您的请求中的内容。如果它返回200,那么您返回的字符串不是有效的JSON字符串。

在以下网址验证:jsonlint.com

答案 1 :(得分:0)

首先:您必须确保您的JSON文件(在getJSON()中被视为)可以访问且没有任何错误。

然后使用以下代码段:

$(document).ready(function(){       
        $.getJSON('/the/path/to/theJSON',{
          format: "json"
        }).done(function(data){
          alert(data.fruit_name);
        });     
      });