Warum fehlen Axios POST-Anfragedaten in den PHP-Variablen $POST und $REQUEST?

Mary-Kate Olsen
Freigeben: 2024-10-22 23:17:29
Original
891 Leute haben es durchsucht

Why is Axios POST Request Data Missing from PHP's $POST and $REQUEST Variables?

Axios-Posting-Parameter in PHP-Variablen nicht verfügbar

Dieses Codefragment verwendet die Axios-Bibliothek, um eine POST-Anfrage zu stellen und den Content-Type-Header festzulegen an application/x-www-form-urlencoded:

axios({
    method: 'post',
    url,
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    data: {
        json,
        type,
    }   
})  
Nach dem Login kopieren

Die entsprechenden PHP-Variablen $_POST und $_REQUEST bleiben jedoch nach der Anfrage leer. Stattdessen scheint file_get_contents("php://input") die Daten zu empfangen.

Ursache und Lösung

Die Diskrepanz ergibt sich daraus, wie Axios Daten standardmäßig serialisiert . Es konvertiert JavaScript-Objekte in JSON, was PHP zum Auffüllen von $_POST nicht nativ unterstützt. PHP akzeptiert nur die maschinenverarbeitbaren Formate, die von HTML-Formularen unterstützt werden: application/x-www-form-urlencoded und multipart/form-data.

Um dieses Problem zu beheben, haben Sie mehrere Möglichkeiten:

  • Browser:

    • Verwenden Sie die URLSearchParams-API:

      var params = new URLSearchParams();
      params.append('param1', 'value1');
      params.append('param2', 'value2');
      axios.post('/foo', params); 
      Nach dem Login kopieren
    • Verwenden Sie die qs-Bibliothek :

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

    • PHP so anpassen, dass JSON gemäß dieser Antwort verarbeitet wird: [Link zur Antwort]

Das obige ist der detaillierte Inhalt vonWarum fehlen Axios POST-Anfragedaten in den PHP-Variablen $POST und $REQUEST?. 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!