猿问

Axios 在 post 请求中发送数组而不是 json 对象

我正在尝试使用 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);

 }

这是我的输出。


Illuminate\Http\Request {#51

  #json: Symfony\Component\HttpFoundation\ParameterBag {#43

  #parameters: array:8 [

  "file" => array:1 [

    "id" => 61

  ]

}


泛舟湖上清波郎朗
浏览 291回答 3
3回答

慕姐8265434

PHP 的“数组”并不是真正的数组,它们是有序的映射。这就是您的输出显示的内容,请求包含参数,这是一个有序映射,并且参数是其中file包含的有序映射。id => 61在 JavaScript 中,这将是一个对象(或者Map,有时);在许多其他语言中,它可能是某种地图或字典。PHP 将它们称为数组。不管怎样,如果你访问file参数(我不“做”Laravel,所以我不知道你是如何做到的),你可以id像这样从中获取:$file[id ]。看看Laravel 文档,看起来是这样的:$file = $request->input('file');$id = $file['id'];

米脂

请求$request传递的是数组而不是对象实例,因此,您只能像下面这样访问:$request->input('file')['id']或者$request->file['id']或者$request->input('file.id')或者,仅文件字段$request-all()[0]['file']['id']

慕容708150

您可以获取 $request 的数据为$file = $request->input('file');$file['id'];//Or$fileId = $request->input('file.id');
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答