未捕获的TypeError:无法读取未定义的属性“消息”

时间:2014-03-10 20:56:05

标签: javascript html ajax google-chrome

我正在尝试为我的网站实施一个AJAX联系表单,我遇到的问题是,当我点击提交时,我在Google Chrome中遇到以下错误:

"Uncaught TypeError: Cannot read property 'message' of undefined----contact-form.js:38".

请查看the HTML codecontact-from.js

2 个答案:

答案 0 :(得分:0)

error: function(response) {
     contactForm.addAjaxMessage(response.responseJSON.message, true);
}

如果查看jQuery documentation for error in $.ajax,您会看到回调函数的第三个参数是包含错误消息的字符串:

  

错误

     

Type: Function( jqXHR jqXHR, String textStatus, String errorThrown )

     

请求失败时要调用的函数。该   函数接收三个参数:jqXHR(在jQuery 1.4.x中,   XMLHttpRequest)object,一个描述错误类型的字符串   发生了,并且发生了一个可选的异常对象。

所以,试试这个,而不是:

error: function(a, b, response) {
     // You can use `a` and `b` if you need them.

     contactForm.addAjaxMessage(response, true);
}

答案 1 :(得分:0)

错误是因为responseJSON不是standard propertyXMLHttpRequest的{​​{3}}。

您需要that jQuery makes availableuse responseText instead

contactForm.addAjaxMessage($.parseJSON(response.responseText).message, true);

// or
contactForm.addAjaxMessage(response.responseText, true);