在jQuery中调用Ajax - 未捕获的类型错误无法读取null的属性“错误”

时间:2011-10-23 20:31:51

标签: jquery ajax

我正在尝试使用下面的jQuery进行ajax调用。

但是我可以在Chrome中看到,我正在获取未被捕获的类型错误无法读取属性'错误'的null。所以这会阻止课程('成功')被添加。知道为什么这样做吗?我是否需要声明'错误'??

function submitForm(formData) {
$.ajax({
    type: 'POST',
    url: 'mailer.php',
    data: formData,
    dataType: 'json',
    cache: false,
    timeout: 7000,
    success: function(data) {
        $("form #form_ajax").removeClass().addClass((data.error === true) ? "error" : "success")
        .html(data.msg).fadeIn('fast');

        if ($('form #form_ajax').hasClass('success')) {
            setTimeout("$('form #form_ajax').fadeOut('fast')", 5000);
        }
    },

     error: function(XMLHttpRequest, textStatus, errorThrown) {
        $('form #form_ajax').removeClass().addClass('error')
            .html('<p>There was an ' + errorThrown + 'error due to a ' + textStatus + ' condition.</p>').fadeIn('fast');
    },

    complete: function(XMLHttpRequest, status) {
        $('form')[0].reset();
    }
});
};

...谢谢

2 个答案:

答案 0 :(得分:2)

datanull,可能是因为您的服务器没有发送任何JSON。

答案 1 :(得分:1)

将您的代码编辑为:

    success: function(data) {
 if ( data.error)  alert(data.error);
  alert(data);
     $("form #form_ajax").rem...

告诉我警告信息(theres 2)

编辑:没有任何意义:

执行此操作:enter image description here