Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Axios POST Tidak Mengisi $_POST dalam PHP dengan Data JSON?
Parameter Axios POST Tidak Mengisi $_POST
Apabila menggunakan Axios untuk melaksanakan permintaan POST dengan muatan yang terdiri daripada data JSON, PHP mungkin tidak tafsirkan parameter dengan betul daripada $_POST atau $_REQUEST. Sebaliknya, data permintaan selalunya boleh diakses melalui file_get_contents("php://input").
Punca Punca:
Secara lalai, Axios menyerikan objek JavaScript kepada JSON . PHP, walau bagaimanapun, tidak menyokong JSON sebagai format data asli untuk populasi $_POST. Ia hanya menerima format boleh diproses mesin yang disokong oleh borang HTML:
Penyelesaian:
Untuk menyelesaikan isu ini, anda boleh mengubah suai permintaan Axios untuk menghantar data dalam format application/x-www-form-urlencoded, yang PHP boleh kendalikan dengan betul. Terdapat dua pilihan utama:
1. Menggunakan API URLSearchParams (Pelayar Sahaja):
var params = new URLSearchParams(); params.append('param1', 'value1'); params.append('param2', 'value2'); axios.post('/foo', params);
2. Menggunakan Perpustakaan qs (Node.js):
var qs = require('qs'); axios.post('/foo', qs.stringify({ 'bar': 123 }));
Kaedah ini memastikan data permintaan disiri dengan betul kepada format aplikasi/x-www-form-urlencoded, menjadikannya boleh diakses melalui $_POST dalam PHP.
Sebagai alternatif, anda boleh mengubah suai PHP untuk mengendalikan JSON sebagai format data yang sah untuk $_POST, tetapi pendekatan ini kurang disyorkan.
Atas ialah kandungan terperinci Mengapa Axios POST Tidak Mengisi $_POST dalam PHP dengan Data JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!