我正在将我的应用程序从laravel 4.2迁移到5.7。 我有删除用户的逻辑: 此操作是在点击时触发的
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
})
$.ajax({
type: "DELETE",
url: "{{ URL::to('administrator/admin-delete') }}"+"/"+id
});
在我的路线文件中:
Route::delete('admin-delete', 'UsersController@removeAdminDelete');
以及在我的控制器中:
public function removeAdminDelete($id)
{
$user = Admin::find($id);
File::delete($user->photo);
$user->delete();
Session::flash('successDelete', "ok");
if(Auth::user()->id == $id){
Auth::user()->logout();
return Redirect::to("administrator");
}else{
return Redirect::back();
}
}
当我尝试删除用户时,在控制台中出现此错误:
删除my_delete_url 419(未知状态)!
编辑后,我得到404错误!
答案 0 :(得分:4)
Laravel中的419错误表示您没有为kubeadm init phase certs apiserver --config=/etc/kubernetes/kubeadm-config.yaml
kubeadm init phase certs apiserver-kubelet-client --config=/etc/kubernetes/kubeadm-config.yaml
systemctl stop kubelet
delete the docker container with kubelet
systemctl restart kubelet
提供令牌。
如dos所示,您可以在页面的顶部添加一个csrf
标签,其标记为:
meta
,然后设置ajax请求以使其始终包含:
<meta name="csrf-token" content="{{ csrf_token() }}">
注意事项:请确保在拉入jQuery之后并提出ajax请求之前添加以上代码。
此外,您应该使用$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
而不是delete
作为路由。
更改
resource
到
Route::resource('admin-delete', 'UsersController@removeAdminDelete');
答案 1 :(得分:0)
似乎与csrf令牌有关。尝试像这样在您的ajax调用中添加csrf令牌:
<meta name="csrf-token" id="csrftoken" content="{{ csrf_token() }}">
并使用此标头设置ajax:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('#csrftoken').attr('content')
}
});
答案 2 :(得分:0)
在结束表单标签之前,像这样添加
<form action='' method='post'>
......
@csrf
</form>