我怎么知道JSON字符串是否已加载?

时间:2012-09-21 15:56:37

标签: ajax json jquery

原谅我,我是一个完整的JSON新手。我正在尝试从外部文件加载一个json信息文件,我不知道如何判断信息是否已加载。这是我到目前为止所做的:

$(document).ready(function(){
    $.ajax({
        dataType: 'json',
        success: function(string) {
            data = $.parseJSON(string);
            console.log(data);
            alert(data);
            document.write(data);
        },
        url: 'http://www.site.com/mystuff.php'
    });  
});

我已经尝试过各种各样的东西,看看信息是否已经加载,正如你所看到的,什么都没有。我怎么知道我有没有得到任何东西?我真的很感激任何帮助!

2 个答案:

答案 0 :(得分:1)

正如已经指出的那样,有两件事:

  • 将数据类型设置为JSON
  • 时,不需要解析字符串
  • 检查请求是否已成功返回

这可能是这样的:

$(document).ready(function(){
    $.ajax({
        dataType: 'json',
        success: function(json) {
            console.log(data);
        },
        error : function(xhr, text) {
            console.log('An error occurred', xhr, text);
        },
        url: 'http://www.site.com/mystuff.php'
    });  
});

将数据类型设置为JSON时,还必须确保mystuff.php将Content-Type标题设置为application/json

<?php
    header('Content-Type: application/json');
?>

答案 1 :(得分:0)

无需再次解析json ..您可以直接使用该对象 还要添加错误函数以检查是否收到任何错误..

$(document).ready(function(){
    $.ajax({
        dataType: 'json',
        beforeSend : function() {
           console.log('Before Ajax Request Starts !!');
        },
        success: function(data) {
            console.log(data);
            alert(data);
            document.write(data);
        },
        error : function(jqXHR, textStatus, errorThrown) {
             alert("Error occurred: " + errorThrown);
        },
         beforeSend : function() {
           console.log('Ajax Request Complete  !!');
        },
        url: 'http://www.site.com/mystuff.php'
    });  
});

这确保您在每一步都有反馈......