这是我的代码,它通过AJAX发送表单,然后用于向用户显示消息
var postValues = {
name: $($nameObject).val(),
email: $($emailObject).val(),
message: $($messageObject).val(),
form: $(this).find('input[name=form]').val()
};
var form = this;
$.post(config.basePath + 'contact/', postValues, function(data) {
// get json here and make sure it sent
console.log('done request!');
console.log(data.success);
var $statusObject = $(form).find('.status-message');
if (data.success) {
console.log(data.message);
$statusObject.removeClass('failed').text(data.message);
setTimeout(function() {
$statusObject.fadeOut(1500).remove();
$(form).find('input[type=text], textarea').val('');
$(form).find('button[type=submit]').removeAttr('disabled').parent('div').removeClass('sending');
}, 1500);
} else { // error with ajax
$statusObject.addClass('failed').text(data.message);
$(form).find('button[type=submit]').removeAttr('disabled');
}
}, 'json');
return false;
});
Firebug说要返回的JSON是
{ “成功”:真 “消息话题”:“发送 成功“}
我可以轻松获得data.success
的值,但每当我尝试访问data.message
时,它都会设置为“未定义”。
但是,当我这样做时
console.log(data)
我在Firebug中获得了正确的输出:
对象成功= true messsage =已成功发送
听起来是什么原因?这让我有点疯狂!
提前感谢您的帮助。
答案 0 :(得分:1)
您尝试访问data.message
,但您的JSON已data.messsage
。有三个。
答案 1 :(得分:1)
看起来你在Firebug中的返回字符串是 sss 年龄...注意额外的s。
我认为这可能是你的问题;)