Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn PHP keine Ajax-Daten empfangen kann?

Was soll ich tun, wenn PHP keine Ajax-Daten empfangen kann?

藏色散人
藏色散人Original
2020-07-25 10:01:563274Durchsuche

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.

Was soll ich tun, wenn PHP keine Ajax-Daten empfangen kann?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn