2016-07-05 6 views
0

Ich verwende einen AJAX-POST, um ein JSON-Objekt von der Client-Seite meines Servers zu senden. Ich bin jedoch ein wenig verwirrt darüber, wie ich auf das Objekt zugreifen soll, sobald es da ist.Wie greife ich auf ein Element dieses JSON-Objekts zu, das von JSON.parse erstellt wurde?

Hier ist meine POST von der Client-Seite:

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); 
 
      } 
 
     });

Das funktioniert ganz gut. Auf meinem Server, ich den Körper der Anforderung gedruckt werden und es sieht gut aus:

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

Dann rufe ich JSON.parse auf, und alles funktioniert nach wie vor, wie ich erwartet hatte, hier ist das Ergebnis:

{ "app": "Bewertungen", "Name": "", "Überprüfung": "", "Antwort": "", "Bewertung": 4,5, "URL": "test.com", "Datum": " 7.5.2016 "}

Dies wird in einer Variablen namens Post gespeichert. Wenn ich jedoch auf post.app oder post ['app'] zugreifen will, bekomme ich ein undefined. Kann mir jemand sagen, wo ich falsch liege?

+0

Verwenden '$ _POST [ 'App']' auf Serverseite – Poonam

+2

, warum Sie mit 'JSON.stringify' zweimal? – Poonam

+0

Poonam und FDavidov hatten Recht, ich verwendete zweimal stringify. Ich habe console.log (post) verwendet, um die Post-Variable zu drucken. – user1023465

Antwort

2

Das gleiche Problem ist mir passiert, wenn ich irrtümlich JSON.stringify auf ein Objekt verwendet, das bereits eine Zeichenfolge war, die es genau aussieht, was Sie tun.

+0

Das war genau, was das Problem war, danke! – user1023465

+0

Mein Vergnügen .... – FDavidov

1

Änderung

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

zu

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