Lösung für das Problem, dass PHP keine Ajax-Daten empfangen kann: 1. Fügen Sie den Deklarationscode als „Content-Type=application/x-www-form-urlencoded“ hinzu. 2. Serialisieren Sie ihn entsprechend in eine Zeichenfolge von beiden Parteien vereinbartes Format.
Empfohlen: „PHP-Tutorial“
Lösung für das Problem, dass PHP den JSON-Wert nicht empfangen kann übermittelt durch Ajax-Methode
JS muss contentType = application/x-www-form-urlencoded angeben, damit die gesendeten JSON-Daten von PHPs $_POST empfangen werden.
Der Standardwert von contentType in jQuery: „application/x-www-form-urlencoded“ (Inhaltskodierungstyp beim Senden von Informationen an den Server). Der Standardwert ist für die meisten Fälle geeignet. Wenn Sie einen Inhaltstyp explizit an $.ajax() übergeben, wird dieser definitiv an den Server gesendet (auch wenn keine Daten zum Senden vorhanden sind).
1. Wenn Sie zum Senden die Post-Methode verwenden, muss eine Anweisung von Content-Type = application/x-www-form-urlencoded vorhanden sein, andernfalls analysiert PHP die eingehenden Daten nicht im $_POST-Array .
deklariert einen contentType = application/json und Ajax fügt automatisch eine Content-Type = application/x-www-form-urlencoded-Deklaration hinzu. Diese beiden Aussagen werden auch PHP verwirren.
2. Die gesendeten Daten sind {data:jsonData}, ein js-Objekt. Selbst wenn es erfolgreich gesendet werden kann, kann PHP es nicht analysieren, da es das Objekt nicht erkennt. Alle mit der Außenwelt ausgetauschten Datenstrukturen müssen in dem von beiden Parteien vereinbarten Format in Zeichenfolgen serialisiert werden
Gehen Sie davon aus, dass Ihr Js.Ajax js-Objekte in Zeichenfolgen im JSON-Format konvertieren kann
und Sie Die Anweisung contentType = application/json wurde ebenfalls entfernt
Dann können Sie das Element mit dieser JSON-Zeichenfolge als Schlüssel in $_POST sehen
Wenn Sie darauf bestehen, contentType = application/ nicht entfernen zu wollen json Die Anweisung
Vielleicht können Sie file_get_contents('php://input') verwenden, um den eingehenden Inhalt abzurufen
php://input ermöglicht das Lesen der Rohdaten von POST. Es belastet den Speicher weniger als $HTTP_RAW_POST_DATA und erfordert keine speziellen php.ini-Einstellungen. php://input kann nicht mit enctype=“multipart/form-data“ verwendet werden.
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn PHP keine Ajax-Daten empfangen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!