首页 > 解决方案 > 无法使用 axios 将带有数组参数的请求从 vue 发布到控制器

问题描述

我正在尝试使用 axios post 将数组从我的 vue 传递到我的控制器。但是,如果我想从请求中获取数据,我不会以数组格式获取它。

我也用一个对象尝试JSON.stringyfy()过。

我要发送的vue数据

parts: [],

axios 帖子

const config = {
    headers: {'content-type': 'multipart/form-data'}
};

let formData = new FormData();
formData.append('title', this.title);
formData.append('description', this.intro);
formData.append('parts[]', this.parts);
formData.append('pictures', this.selectedPictures);
formData.append('options', JSON.stringify(this.options));
valid = true;
if (valid) {
    axios.post('/admin/oefeningen/oefening-opslaan', formData, config)
        .then(function (response) {
            console.log(response.data);
        })
        .catch(function (error) {
            console.log(error.data);
        });
}

控制器

public function save(Request $request)
{
    try {
        //get request info
        return response($request->input('parts'));
    } catch (\Exception $exception) {
        return response($exception->getMessage());
    }
}

我正在传递的 Vue 数据

parts = ["sdfsdfsdf", "sdfsdfsdfsfsdf"]

响应结果

sdfsdfsdf,sdfsdfsdfsfsdf (as string, not as array)

附加for循环

let formData = new FormData();
formData.append('title', this.title);
formData.append('description', this.intro);

for (let i = 0; i < this.parts.length; i++) {
    formData.append('parts', this.parts[i]);
}

我想在我的控制器中获取确切的数据,就像在我的 vue 组件中一样。就像我可以循环的数组一样。

标签: laravelvue.jsaxios

解决方案


推荐阅读