使用axios上传和patch方法不起作用

Lui*_*uis 1 javascript form-data laravel vue.js axios

我使用 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) => {

                    }); 
Run Code Online (Sandbox Code Playgroud)

路线

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) => {

                    }); 
Run Code Online (Sandbox Code Playgroud)

错误

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

但是当我将方法更改为 POST 时,在我的 vue 文件和 web.php 中它都有效,发生了什么?我需要使用两种方法:发布新数据和修补更新。我能做些什么?

Pus*_*raj 6

Httppatch方式不支持FormData。因此,要么提交 JSON 请求,要么将您的路由方法更改为post. 另外,如果patch方法是必须有的,那么您可以提交axios.post附加属性_method: 'patch',然后可以处理FormData请求。

  • 我们如何提交 JSON 请求? (2认同)