在javascript中,我这样做:

axios.post('/api/categories', {
   topCategories: JSON.stringify({ data: ['a', 'b', 'c', 'd', 'e'] })
})


然后,在Laravel中,我收到了:

protected function getCategories(Request $request) {
    $topCategories = $request->topCategories;
    var_dump(json_decode($topCategories));
}


但是,我总是在var_dump中收到null!为什么会这样呢?

最佳答案

您不需要使用JSON.stringify。 Axios自行完成。

axios.post('/api/categories', {
   topCategories: ['a', 'b', 'c', 'd', 'e']
})


为了处理POST有效负载,请在Laravel中使用$request->input()

protected function getCategories(Request $request) {
    $topCategories = $request->input('topCategories');
    dd($topCategories);
}


需要明确说明的是:问题不在服务器端。您在那里正确完成了所有操作,并且可以使用$request->topCategories从POST有效负载中检索数据。但是ajax有效负载构建不正确。

09-07 23:12