Javascript Dot Notation =未定义

cdw*_*yer 3 javascript ajax syntax jquery

点表示法允许使用"."访问对象.无法弄清楚为什么会这样.我有以下成功函数,作为jQuery $ .ajax函数的一部分.

success: function(data){
  console.log('data = ' + data);
  console.log('data.president = ' + data.president);
  console.log('data.adviser = ' + data.adviser);
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这导致以下浏览器日志:

data = {"president":1,"adviser":1}
data.president = undefined
data.adviser = undefined
Run Code Online (Sandbox Code Playgroud)

我必须遗漏一些痛苦明显的东西.有人可以开导我吗?

jda*_*ski 6

数据必须是要由点访问的对象..现在是一个字符串.你需要使用例如解析它:

data = JSON.parse(data);
Run Code Online (Sandbox Code Playgroud)

  • 理想情况下,服务器会为响应设置正确的MIME类型,jQuery会自动将响应解析为JSON.或者正如A. Wolff刚才指出的那样,使用`dataType:"json"` (3认同)