$ .post始终返回undefined

时间:2012-05-11 15:27:27

标签: jquery ajax callback

当我进行以下jQuery调用时

$.post('/publish/comments', 
  parms,
  function(data, textStatus){
    console.log('textStatus: ' . textStatus);
    console.log('returned data: ' . data);
    console.log('nextPage: ' . data.nextPage);
  },
  "json"
); 

控制台显示数据,textStatus和data.nextPage都未定义。

但是在Chrome开发工具(网络标签)中,我可以看到以下JSON数据正从服务器传回。

{success:true, nextPage: /go/page/requestId/182/src/publish}
nextPage: "/go/page/requestId/182/src/send"
success: true

思想?

3 个答案:

答案 0 :(得分:7)

菲利克斯指出,联合会需要“+”

另外,我发现如果你想记录整个对象,你不希望在console.log()中包含字符串。

尝试console.log(data)而不是在它之前放置字符串(如“data:”),这将保证在控制台中可以看到整个对象。

答案 1 :(得分:3)

你需要使用+运算符而不是php中使用的.进行联接

$.post('/publish/comments', 
       parms,
       function(data, textStatus){
                            console.log('textStatus: ' + textStatus);
                            console.log('returned data: '+ data);
                            console.log('nextPage: ' + data.nextPage);    
       },
       "json"
       ); 

答案 2 :(得分:1)

尝试使用此代码模式登录控制台:

console.log(['textStatus', textStatus]);

这允许将消息和对象打印到控制台。

也就是说,'textStatus: ' . textStatusundefined因为JavaScript字符串没有属性textStatus.是“访问属性”运算符而不是PHP concat运算符)