当我进行以下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
思想?
答案 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: ' . textStatus
是undefined
因为JavaScript字符串没有属性textStatus
(.
是“访问属性”运算符而不是PHP concat运算符)