Laravel使用AJAX登出

问题描述

我正在尝试编写一个AJAX脚本,该脚本将使用POST请求将我从Laravel中注销:

$.ajax({
        headers: {
        'X-CSRF-Token': "{{ csrf_token() }}"
    },type: "POST",url: '/logout',success: function() {
        window.location.replace('https://portal.nchinc.com/?logout=timeout');
    }
});

结果是我只是被重定向,注销没有生效。我在做什么错了?

注意:已设置CSRF令牌以避免401未经授权的HTTP响应。

感谢您的帮助!

解决方法

尝试:

$.ajax({
    type: "POST",url: '/logout',data: {'_token' : "{{ csrf_token() }}"},success: function() {
        window.location.replace('https://portal.nchinc.com/?logout=timeout');
    }
});

您不需要设置标题,但是需要_token才能避免Csrf验证失败。

,

有效

<meta name="csrf-token" content="{{ csrf_token() }}">

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});