我正在使用AJAX POST从我的服务器的客户端发送JSON对象。但是,一旦它到达那里,我对如何访问它有点困惑。
这是我在客户端的POST:
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”,”日期 “:” 2016" 年7月5日}
这保存在名为post的变量中。但是,当我尝试访问post.app或发布['app']时,我得到一个未定义的。谁能让我知道我哪里出错?
答案 0 :(得分:2)
当我错误地在一个已经是字符串的对象上使用JSON.stringify
时,我发生了同样的问题,它看起来就像你正在做的那样。
答案 1 :(得分: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
};