2016-07-05 82 views
0

我正在使用AJAX POST从客户端发送JSON对象我的服务器。但是,对于如何访问一旦达到目标的对象,我有点困惑。如何访问由JSON.parse创建的此JSON对象的元素?

下面是从客户端我的帖子:

var data = JSON.stringify({ 
 
     'app': 'reviews', 
 
     'name': '', 
 
     'review': '', 
 
     'response': '', 
 
     'rating': rating, 
 
     'url': url, 
 
     'date': date 
 
    }); 
 
    console.log(data); 
 
    $.ajax({ 
 
      type: "POST", 
 
      url: "https://stormy-plateau-94715.herokuapp.com/", 
 
      data: JSON.stringify(data), 
 
      contentType: "application/json; charset=utf-8", 
 
      dataType: "json", 
 
      success: function(data) { 
 
      alert(data['success']); 
 
      }, 
 
      failure: function(errMsg) { 
 
      alert(errMsg); 
 
      } 
 
     });

这一切正常。在我的服务器,我打印请求的主体,它看起来罚款:

"{\"app\":\"reviews\",\"name\":\"\",\"review\":\"\",\"response\":\"\",\"rating\":4.5,\"url\":\"test.com\",\"date\":\"7/5/2016\"}" 

然后我打电话JSON.parse它,一切仍然有效,如我所料,这里是结果:

{ “应用程序”: “评论”, “名”: “”, “审查”: “”, “响应”: “”, “等级”:4.5, “URL”: “test.com”, “日期”:” 7/5/2016“}

这保存在一个名为post的变量中。但是,当我尝试访问post.app或post ['app']时,我得到一个未定义的。有人能让我知道我要去哪里吗?

+0

使用'$ _ POST [ '应用']为什么你使用'JSON.stringify'两次'服务器端 – Poonam

+2

? – Poonam

+0

Poonam和FDavidov是对的,我使用了两次stringify。我用console.log(post)打印post变量。 – user1023465

回答

2

当我错误地在已经是字符串的对象上使用JSON.stringify时,发生了同样的问题,它看起来正是你在做什么。

+0

这正是这个问题的感谢! – user1023465

+0

我的荣幸.... – FDavidov

1

变化

var data = JSON.stringify({ 
    'app': 'reviews', 
    'name': '', 
    'review': '', 
    'response': '', 
    'rating': rating, 
    'url': url, 
    'date': date 
}); 

var data = { 
    'app': 'reviews', 
    'name': '', 
    'review': '', 
    'response': '', 
    'rating': rating, 
    'url': url, 
    'date': date 
};