JQuery $ .getJSON()无法正常使用回调

时间:2012-08-16 23:13:01

标签: javascript jquery ajax json

已解决 - 等待标记(stackoverflow延迟)

萤火虫没有错误。在我无法弄清楚为什么它不起作用之前我已经这样做了。 asyncFetchContent()从其他地方被解雇。 contentController是在其他地方创建的。

function ContentController() {

}

ContentController.prototype.asyncFetchContent = function(){ 

         $.getJSON( '/content/TestContent.json', 
            function(data){
                contentController.displayContentCallback( data ); 
                } 
         );
}

ContentController.prototype.displayContentCallback = function( javascriptObject ){ 
    alert( "in callback");
    $( "#testID" ).html( javascriptObject.title );
}

Firebug将在displayContentCallback()的定义处接受断点并停止但是一旦您继续步骤就会默默地失败。 javascriptObjectundefined

由于式提前,

2 个答案:

答案 0 :(得分:2)

来自manual

  

重要提示:从jQuery 1.4开始,如果JSON文件包含语法错误,   请求通常会无声地失败。避免经常手工编辑   因此JSON数据。 JSON是一种数据交换格式   语法规则比JavaScript的对象更严格   字面符号。例如,所有以JSON表示的字符串,   无论是属性还是价值,都必须附上   双引号。有关JSON格式的详细信息,请参阅http://json.org/

您的JSON是否包含错误?

答案 1 :(得分:0)

contentController.displayContentCallback(data);不存在。 a)它是ContentController,而不是contentController和b)因为你正在使用原型,它必须像

function ContentController() {

}

ContentController.prototype.asyncFetchContent = function(){ 

     $.getJSON( '/content/TestContent.json', 
        function(data){
            var x = new ContentController();
            x.displayContentCallback( data ); 
        } 
     );
}

ContentController.prototype.displayContentCallback = function( javascriptObject ){ 
    alert( "in callback");
    $( "#testID" ).html( javascriptObject.title );
}

我很确定这应该有用。

相关问题