在 Laravel 8.x 应用程序中,PUT 请求不适用于 Standard Request
类。
save() {
let formData = this.prepareFormInput('save');
this.saveBeforeHook();
axios.put(`/${this.model}/edit`, formData, this.axiosHeaders)
.then(r => {
if(r.data.errors) {
this.formDialog.errors = r.data.errors;
} else {
if(r.data.record) {
this.saveAfterHook(r.data.record);
}
this.$root.formDialog.show = false;
this.$root.formMode = "add";
}
}).
catch(e => {
if(e.response.data.errors) {
this.formDialog.errors = e.response.data.errors;
}
});
}
但是请求对象没有正确设置任何发布的数据。查看请求对象,没有设置任何数据。
我已将该问题归结为 PUT
中的 Laravel 8.x
请求。
在 POST
中使用具有相同信息的 Laravel 8.x
请求工作正常。
在 Laravel 5.x
应用程序中使用相同的 PUT 请求工作正常。
为什么 PUT 请求在 Laravel 8.x
中无法正常运行?
答案 0 :(得分:1)
我认为这将解决您的问题
对于 PUT
你想让你的表单像
<form action="/example" method="POST">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
或
<form action="/example" method="POST">
@method('PUT')
@csrf
</form>
更多信息:Form Method Spoofing
编辑:
如果您使用 ajax
,则使用 method
作为“POST”并将 _method
值传递为“PUT”。如需更多信息:Laravel AJAX PUT & DELETE