JSON-Daten von Ajax in PHP dekodieren
Beim Versuch, JSON-Daten von einer Ajax-Anfrage an ein PHP-Skript zu senden, kann es zu einer Fehlermeldung kommen Problem, bei dem die Daten nicht ordnungsgemäß empfangen oder analysiert werden. Um dieses Problem zu lösen, stellt sich häufig die Frage, wie JSON-Daten effektiv von Ajax gesendet und in PHP dekodiert werden können.
Lösung
1. Content-Type-Header entfernen
Entfernen Sie in der Ajax-Anfrage den ContentType-Header:
$.ajax({ type: "POST", dataType: "json", url: "add_cart.php", data: {myData:dataString} });
2. Direkte Variablenzuweisung verwenden
Greifen Sie in PHP direkt von $_POST aus auf die JSON-Daten zu, ohne json_decode zu verwenden:
if(isset($_POST['myData'])){ $obj = $_POST['myData']; //some php operation }
Grund
Der Grund, warum der ursprüngliche Code nicht funktionierte, liegt darin, dass der ContentType-Header auf application/json gesetzt war. Dies zeigte PHP an, dass die gesendeten Daten im JSON-Format vorlagen, was nicht der Fall ist. Bei den Daten handelt es sich eigentlich um eine normale POST-Abfrage, die einen JSON-String enthält.
Durch das Entfernen des contentType-Headers senden Sie die Daten als reguläre POST-Abfrage und ermöglichen PHP, die String-Konvertierung automatisch durchzuführen.
Das obige ist der detaillierte Inhalt vonWie dekodiere ich JSON-Daten von Ajax in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!