获取JSON字符串的问题

时间:2009-07-22 02:18:10

标签: javascript jquery json

这是我的代码,它通过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 =已成功发送

听起来是什么原因?这让我有点疯狂!

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您尝试访问data.message,但您的JSON已data.messsage。有三个。

答案 1 :(得分:1)

看起来你在Firebug中的返回字符串是 sss 年龄...注意额外的s。

我认为这可能是你的问题;)