2016-07-05 73 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 
};