Warum füllt Axios POST $_POST in PHP nicht mit JSON-Daten?

Linda Hamilton
Freigeben: 2024-10-23 01:04:30
Original
441 Leute haben es durchsucht

Why Doesn't Axios POST Populate $_POST in PHP with JSON Data?

Axios-POST-Parameter füllen $_POST nicht aus

Bei Verwendung von Axios zum Ausführen einer POST-Anfrage mit einer Nutzlast, die aus JSON-Daten besteht, funktioniert PHP möglicherweise nicht Interpretieren Sie die Parameter von $_POST oder $_REQUEST korrekt. Stattdessen sind die Anforderungsdaten oft über file_get_contents("php://input") zugänglich.

Ursache:

Standardmäßig serialisiert Axios JavaScript-Objekte in JSON . PHP unterstützt JSON jedoch nicht als natives Datenformat für die $_POST-Population. Es akzeptiert nur die maschinenverarbeitbaren Formate, die von HTML-Formularen unterstützt werden:

  • application/x-www-form-urlencoded
  • multipart/form-data

Lösung:

Um dieses Problem zu beheben, können Sie die Axios-Anfrage ändern, um Daten im application/x-www-form-urlencoded-Format zu senden, das PHP korrekt verarbeiten kann. Es gibt zwei Hauptoptionen:

1. Verwenden der URLSearchParams-API (nur Browser):

var params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params);
Nach dem Login kopieren

2. Verwendung der qs-Bibliothek (Node.js):

var qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 }));
Nach dem Login kopieren

Diese Methoden stellen sicher, dass die Anforderungsdaten ordnungsgemäß in das application/x-www-form-urlencoded-Format serialisiert werden, sodass sie über $_POST in zugänglich sind PHP.

Alternativ könnten Sie PHP ändern, um JSON als gültiges Datenformat für $_POST zu verarbeiten, aber dieser Ansatz wird weniger empfohlen.

Das obige ist der detaillierte Inhalt vonWarum füllt Axios POST $_POST in PHP nicht mit JSON-Daten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!