我正在尝试通过一个使用Laravel 5.2的表单使用AJAX调用来更新用户条目。当我在不使用AJAX的情况下提交表单时,新条目会像预期的那样进入数据库,但是如果我通过一个补丁AJAX请求来尝试它,我会收到一个405 (不允许的方法)错误。
下面是我表单的第一行:
{!! Form::open(['method' => 'PATCH', 'action' => ['ProjectsController@foo', 1]]) !!}下面是AJAX调用:
$.ajax
({
url: '/foo/update/1',
type: 'PATCH',
dataType: 'json',
success: function(response)
{
alert('inside AJAX function');
console.log('inside AJAX leader button');
}
});当我尝试将方法类型更改为PUT时,我收到相同的错误,并且当我将其更改为PUT/PATCH时,AJAX调用不会被触发。当我将方法更改为POST时,我收到一个错误500,方法未找到异常,因为更新方法不是post方法。我使用下面这一行来创建所有的RESTful方法:
Route::resource('foo', 'FooController');我知道我可以尝试使用POST方法使其工作,但我想了解更多的补丁。如果你有任何可以帮助我解决这个问题的信息,我将不胜感激。
发布于 2016-05-06 09:52:33
这意味着端点不允许补丁请求。根据RFC2016,还应该返回一个Allowed头,以及一个允许的请求方法列表,所以检查一下这个头,你就会知道你可以使用哪些方法。
发布于 2018-09-25 21:17:22
Patch需要一个body;如果您正在更新记录,则需要为Patch提供一个body。在您的情况下,它可以是一个空对象!
https://stackoverflow.com/questions/37062960
复制相似问题