[英]Axios is sending array instead of json object in post request
我正在嘗試使用 axios 從 Vuejs 前端向后端的 Laravel 發送發布請求。
const data = {
file: {id}
}
axios.post('api/documents/remove', data).then((response) => {
console.log(response.data);
}
}).catch(err => { console.log(err.response.data); })
在 laravel 中,我正在打印這樣的請求,
public function removeFile(Request $request)
{
dd($request);
}
這是我的 output。
Illuminate\Http\Request {#51
#json: Symfony\Component\HttpFoundation\ParameterBag {#43
#parameters: array:8 [
"file" => array:1 [
"id" => 61
]
}
PHP 的“ arrays ”並不是真正的 arrays,它們是有序的 maps 。 這就是您的 output 顯示的內容,請求包含參數,這是一個有序的 map, file
參數是一個有序的 map,其中id => 61
6。 在 JavaScript 中,這將是 object (或Map
,有時); 在許多其他語言中,它將是某種 map 或字典。 PHP 稱它們為 arrays。
無論哪種方式,如果您訪問file
參數(我不“做”Laravel,所以我不知道您是如何做到的),您可以像這樣從中獲取id
: $file[
id ]
。 查看Laravel 文檔,看起來會是:
$file = $request->input('file');
$id = $file['id'];
您可以將 $request 的數據作為
$file = $request->input('file');
$file['id'];
//Or
$fileId = $request->input('file.id');
請求$request
正在交付數組而不是 object 實例,因此,您只能像下面這樣訪問:
$request->input('file')['id']
或者
$request->file['id']
或者
$request->input('file.id')
或者,只有文件字段
$request-all()[0]['file']['id']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.