Jquery Laravel 5.5 Ajax注销无重定向

Jquery Laravel 5.5 Ajax注销无重定向,jquery,ajax,laravel,laravel-5.5,logout,Jquery,Ajax,Laravel,Laravel 5.5,Logout,我正在尝试在刀片视图中创建一个注销按钮,该按钮可以在不重定向用户的情况下注销用户。我只想重新加载同一页 我认为ajax是实现这一点的最佳方式(但我可能错了) 这是我的按钮: @if (auth()->check()) <p>Vous êtes identifié en tant que <strong>{{ auth()->user()->name }}</strong>. <a href="#" onclick="event.pr

我正在尝试在刀片视图中创建一个注销按钮,该按钮可以在不重定向用户的情况下注销用户。我只想重新加载同一页

我认为ajax是实现这一点的最佳方式(但我可能错了)

这是我的按钮:

@if (auth()->check())
  <p>Vous êtes identifié en tant que <strong>{{ auth()->user()->name }}</strong>. <a href="#" onclick="event.preventDefault(); document.getElementById('logout-form').submit();">Se déconnecter ?</a>
     <form id="logout-form" action="{{ url('/logout') }}" method="POST" style="display: none;">
         {{ csrf_field() }}
     </form>
   </p>
@endif
<script>
// Ajax Logout
$('#logout-form').on('submit',function(e){
    e.preventDefault(e);
    var dest_url = "{{ url('/logout') }}";
  $.ajax({
    type:"POST",
    url:dest_url,
    data:$(this).serialize(),
    dataType: 'json',
    headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
    success: function(data){
      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"
      });
    }
  })
});
</script>
LoginController.php

Auth::routes();
Route::post('logout', '\App\Http\Controllers\Auth\LoginController@logout');
 /**
 * Custom logout function with redirect back if ajax.
 *
 * @return void
 */
public function logout(Request $request) {
    $this->guard()->logout();
    $request->session()->invalidate();
    $request->session()->flash('errors', 'Vous êtes déconnecté');
    if($request->ajax()) {
        return Response::json(array(
            'success' => true,
            'data'   => 'Vous êtes déconnecté'
        )); 
    }
    else {
        return redirect('/');
    }
}

我想我遗漏了什么…

我的请求不是由Ajax执行的,所以我删除了
注销表单
表单,并收听了链接上的点击事件

我的ajax函数中还有一个语法错误,在“error:”部分之前缺少一个“”

以下是我的完整代码,没有华丽的线条:

注销按钮
什么是您的
dd($request->ajax())
?我想您可以使用
返回重定向()->back()内部
返回重定向('/')
用于在
注销后返回上一页(不使用Ajax)
@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
<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('/');
    }
}