我正在尝试使用AJAX调用通过使用Laravel 5.2的表单更新用户条目。当我提交没有AJAX的表单时,新条目会像它们应该的那样进入数据库,但是如果我通过PATCH AJAX请求尝试它,我会收到405(Method Not Allowed)错误。
以下是我表格的第一行:
{!! 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方法使其工作,但我想更多地了解PATCH。如果您有任何可以帮助我解决此问题的信息,我们将不胜感激。
答案 0 :(得分:0)
这意味着端点不允许PATCH请求。根据RFC 2016,还应该返回一个Allowed
标头,其中包含允许的请求方法列表,因此请检查一个请求,然后您将确定可以使用的方法。
答案 1 :(得分:0)
补丁需要一个身体;如果要更新记录,则需要为Patch提供正文。在您的情况下,它可能是一个空对象!