2013-10-08 69 views
0

我正在尝试使用下面的jQuery进行ajax调用。JSON或Jquery错误:未捕获TypeError:无法读取null的属性'错误'

但我可以在Chrome中看到,我得到未捕获的typeerror无法读取null属性的'错误'。所以这阻止了预加载程序离开。任何想法为什么这样做?

function appendTeam(){ 

$.ajax({ 

     url : _path + "/core/ajax.php", 
     type : 'POST', 
     data : { f: 'getTeam'}, 
     dataType : 'json', 
     success : function(data) { 

     if(data.error){ 

      errorMessage('Error: ' + data.error, data.error, data.error); 
      return false; 

     }else{ 
      var count = 0; 
      $.each(data.team, function(i, c){ 
       // check 
       if(!$('#'+c)) return true; 
       var element = $('#'+c); 
       $('input[name="s'+i+'"]').val(element.attr('id')); 
       $('.slot.'+(i+1)+'.ui-droppable').append(element); 
       element.data('prevParent', $('.slot.'+(i+1)+'.ui-droppable')); 
       count ++; 

      }); 

      appendStatus(count); 
      setTimeout(function(){ 
       $('#preloader').fadeOut('fast',function(){ 
        $('#preloader').remove(); 
        popUp('match'); 
       }); 
      }, 2000); 


     } 

    } 
}); 
} 
+0

您可以添加Ajax.php被渲染JSON的例子反应? –

+2

此外成功回调不需要/使用返回语句 –

回答

3

。在你的if运营商的错误:

if(data.error)...

您应该检查它像if(data && data.error)...因此,如果服务器返回你null而不是JSON对象,你会不会尝试访问对象财产error

而且也许你需要单独处理这种情况:尝试存取权限他error财产

+0

这工作,谢谢大家的帮助。 –

0

测试是否datanull空值;

所以不是这个

if(data.error) {

,你可以用不同的方式检查它:

if(data && data.hasOwnProperty('error')) {

这是比较失败的,安全的。

0

之前也许data对象不包含属性error或者是

if(!data) { 
    // handle empty response 
} else if(data.error) { 
    // handle error 
} else { 
    // process results 
} 
0

我想回应是空尝试,看看在使用Firebug enter image description here

相关问题