是否可以向Laravel发出 AJAX PATCH请求,或者我只能POST?Laravel在输入隐藏字段中使用PATCH。然而,我没有使用表单元素-只是点击时应该部分更新记录的按钮(通过Ajax请求)。
这条路线会是什么样子?
路由文件
Route::patch('questions/{id}', 'QuestionController@update')->before('admin');
我不确定Laravel路由是否支持PATCH。
控制器
public function update($id) {
if (Request::ajax() && Request::isMethod('patch')) {
//partially update record here
}
}
JavaScript
$('div#question_preview <some button selector>').click(function (event) {
$.ajax({
url: 'questions/' + question_id,
type: 'PATCH',
data: {status: 'some status'}
});
});
2条答案
按热度按时间rm5edbpk1#
是的,这是可能的。试试你的JavaScript:
在您的路线中:
在QuestionController的更新方法中:
您将看到如下响应
在Laravel文档中阅读更多关于请求信息的信息。
wpx232ag2#
有可能!
您需要在表单请求中提供一个名为
_method
的额外参数,其值为PATCH
。JS
为了提高HTML的可读性,可以在视图文件中提供一个值为
PATCH
的隐藏输入如果你使用的是
FormData
,你需要以POST
的形式发送请求。Laravel应用程序会自动以PATCH
的形式获取它,因为你包含了@method('PATCH')。所以你的路由和方法会被触发。使用FormData的JS