我的请求不是由ajax执行的,所以我删除了
logout-form
表单和我在链接上收听了单击事件。
我的ajax函数中也有语法错误,在“error:”部分之前缺少“,”。
这是我的完整代码,没有超细线:
注销按钮
@if (auth()->check())
<p>Vous êtes identifié en tant que <strong>{{ auth()->user()->name }} </strong>. <a id="logout_btn" href="#">Se déconnecter ?</a>
</p>
@endif
ajax函数
<script>
// Ajax Logout
$('#logout_btn').click(function(e){
e.preventDefault();
var dest_url = "{{ url('/logout') }}";
$.ajax({
type:"POST",
url:dest_url,
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
success: function(){
c = "success";
t = "Succès";
m = "Vous avez été déconnecté";
i = "icon-circle-check";
iziToast.show({
class:"iziToast-"+c||"",
title:t||"Sans titre",
message:m||"-",
animateInside:!1,
position:"topRight",
progressBar:!1,
icon:i,
timeout:9000,
transitionIn:"fadeInLeft",
transitionOut:"fadeOut",
transitionInMobile:"fadeIn",
transitionOutMobile:"fadeOut"
});
$('form[name="reservation"]').load(document.URL + ' form[name="reservation"]');
$('.toolbar .account').load(document.URL + ' .toolbar .account');
},
error: function(){
console.log('Erreur lors de la déconnection via Ajax');
c = "danger";
t = "Erreur";
m = "Une erreur s'est produite lors de la déconnection";
i = "icon-ban";
iziToast.show({
class:"iziToast-"+c||"",
title:t||"Sans titre",
message:m||"-",
animateInside:!1,
position:"topRight",
progressBar:!1,
icon:i,
timeout:9000,
transitionIn:"fadeInLeft",
transitionOut:"fadeOut",
transitionInMobile:"fadeIn",
transitionOutMobile:"fadeOut"
});
}
})
});
</script>
登录控制器
/**
* Custom logout function with no redirect if ajax.
*
* @return void
*/
public function logout(Request $request) {
$this->guard()->logout();
$request->session()->invalidate();
if($request->ajax()) {
return Response::json(array(
'success' => true,
'data' => 'Vous êtes déconnecté'
));
}
else {
return redirect('/');
}
}