1

原谅我,我在这里是一个完整的 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'
    });  
});

我试过放各种东西来查看信息是否已加载,如您所见,但什么也没有。我怎么知道我是否得到了什么?我真的很感激任何帮助!

4

2 回答 2

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');
?>
于 2012-09-21T16:05:21.397 回答
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'
    });  
});

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

于 2012-09-21T16:05:17.340 回答