使用axios和补丁方法上传不起作用

时间:2019-06-30 01:17:56

标签: javascript laravel vue.js axios form-data

我正在使用Laravel 5.8和Vue.js 2,这是我的.vue文件:

let data = new FormData();                           
data.append('name', this.name);
data.append('image',this.image)
data.append('_method', 'PATCH');
axios.patch('/url/' + this.id, data)                        
                     .then(({data}) => {                

                    })
                     .catch((error) => {

                    }); 

路线

Route::patch('/url/{id}', 'CarsController@update');

错误

  

违反完整性约束:1048列“名称”不能为空。

但是当我将方法更改为POST时,无论是在我的Vue文件还是web.php中,它都有效,这是怎么回事?我需要使用两种方法:发布新数据和补丁更新。我该怎么办?

1 个答案:

答案 0 :(得分:3)

Http patch方法不支持FormData。因此,要么提交JSON请求,要么将您的路由方法更改为post。另外,如果必须使用patch方法,则可以提交带有附加属性axios.post的{​​{1}},然后可以处理_method: 'patch'的请求。