2016-07-05 3 views
0

Я использую AJAX POST для отправки объекта JSON со стороны клиента на моем сервере. Однако я немного смущен тем, как получить доступ к объекту, когда он туда доберется.Как получить доступ к элементу этого объекта JSON, созданного JSON.parse?

Вот мой пост со стороны клиента:

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 [ 'приложение'] 'на стороне сервера – Poonam

+2

почему вы используете' JSON.stringify' дважды? – Poonam

+0

Poonam и FDavidov были правы, я дважды использовал строку. Я использовал 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 
}; 
Смежные вопросы