Laravel 5 允许 GET 但 POST 不允许

Laravel 5 GET allowed but POST not allowed

我正在 Laravel 5 做一个项目,我遇到了一个非常奇怪的问题。我正在尝试创建一个用户配置文件部分,用户可以在其中编辑详细信息并将表单提交到 POST 路由 profile/update.

出于某种原因,我得到了一个 MethodNotAllowedHttpException,但我确定我已经在路由文件中声明了它,如下所示:

Route::post('profile/update', 'ProfileController@update');

出于好奇,我在路由文件和发送 ajax 请求的代码中将其更改为 GET。令我惊讶的是它工作正常。我无法理解如何。出于显而易见的原因,我无法发送更新配置文件的 GET 请求。

Ajax代码:

$.ajax({
    url: '/profile/update',
    type: 'POST',
    dataType: 'JSON',
    data: $('form#profile-form').serialize(),
    beforeSend: function(request) {
        return request.setRequestHeader('X-CSRF-Token', $("meta[name='token']").attr('content'));
    }
});

控制器方法:

public function update(UpdateProfileRequest $request)
{
    $data =  $request->all();
    $data['password'] = bcrypt($data['password']);

    $user = auth()->user()->update($data);

    return response()->json(auth()->user(), 200);
}

我做错了什么?

好吧,改天敲了几个小时的脑袋,才发现老开发者在某处留下了一段代码,形式如下:

<input type="hidden" name="_method" value="put" />

就是这样。尽管我的 ajax 电话是 POST,但 Laravel 认为它是 PUT。无论如何,感谢所有发表评论并试图提供帮助的人。欣赏一下。