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
。无论如何,感谢所有发表评论并试图提供帮助的人。欣赏一下。
我正在 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
。无论如何,感谢所有发表评论并试图提供帮助的人。欣赏一下。