Axios POST 參數未填入$_POST
當使用Axios 執行負載由JSON 資料組成的POST 請求時,PHP 可能不會正確解釋$_POST 或$_REQUEST 中的參數。相反,通常可以透過 file_get_contents("php://input") 存取請求資料。
根本原因:
預設情況下,Axios 將 JavaScript 物件序列化為 JSON 。但是,PHP 不支援 JSON 作為 $_POST 群體的本機資料格式。它僅接受HTML 表單支援的機器可處理格式:
multipart/form-data
multipart/form-data解決方案:
var params = new URLSearchParams(); params.append('param1', 'value1'); params.append('param2', 'value2'); axios.post('/foo', params);要解決此問題,可以修改Axios 請求以application/x-www-form-urlencoded 格式發送數據,PHP 可以正確處理。有兩個主要選項:
1。使用URLSearchParams API(僅限瀏覽器):
var qs = require('qs'); axios.post('/foo', qs.stringify({ 'bar': 123 }));
2.使用qs 函式庫(Node.js):
這些方法:這些方法:這些方法:這些方法確保請求資料正確序列化為application/x-www-form-urlencoded 格式,使其可以透過$_POST 存取PHP。 或者,您可以修改 PHP 以將 JSON 處理為 $_POST 的有效資料格式,但不太推薦這種方法。以上是為什麼 Axios POST 不使用 JSON 資料填入 PHP 中的 $_POST?的詳細內容。更多資訊請關注PHP中文網其他相關文章!