为什么$ .each说这个JSON对象是未定义的?

And*_*rew 1 jquery json

这是我的Javascript:

$.post('foo.php', { request: Request }, function(data)
{
    $.each(data.chats, function(i, chat)
    { ... });
});
Run Code Online (Sandbox Code Playgroud)

以下是由Firebug和其他所有内容验证的JSON,此代码正在接收:

{
    "chats": [
        {
            "chat_id": "22",
            "user_status": "Listening",
            "user_ping": "2010-06-22 15:53:57",
            "messages": [
                {
                    "chat_id": "22",
                    "line_id": "5",
                    "message": "Hello",
                    "timestamp": "15:53"
                }
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

...为什么,当我运行它时,它不起作用,并且Firebug抛出"对象未定义"的错误,并在jquery.js的第552行显示"length = object.length"的链接,并显示当我执行console.log(data.chats)时'undefined'?console.log(数据)显示完整的JSON响应,但由于某种原因它不想处理data.chats ...我已经缩小了'$ .each'行的错误.

我有理由相信这是一个非常简单的错误,当有人向我指出时我会面对,但在这一点上我完全糊涂了.(是的,"聊天"应该是一个JSON数组,以便将来处理多个聊天,与消息相同.)

tva*_*son 6

告诉它你期待JSON - 默认情况下它会将响应视为html.

$.post('foo.php', { request: Request }, function(data) 
{ 
    $.each(data.chats, function(i, chat) 
    { ... }); 
}, 'json');
Run Code Online (Sandbox Code Playgroud)