【问题标题】:Laravel Logout Using AJAXLaravel 使用 AJAX 注销
【发布时间】:2020-12-07 22:58:30
【问题描述】:

我正在尝试编写一个 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 响应。

感谢您的帮助!

【问题讨论】:

    标签: jquery ajax laravel laravel-7.x


    【解决方案1】:

    有效

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

    【讨论】:

    • 抱歉错误更改$.ajaxSetup而不是$.ajax
    • 清除缓存php artisan cache:clear并再次检查
    【解决方案2】:

    试试看:

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

    您应该不需要设置标头,但需要 _token 以避免 Csrf 验证失败。

    【讨论】:

    • 我尝试了你的建议,但它并没有让我退出。它只是重定向我。仍然登录。
    猜你喜欢
    • 2016-02-13
    • 2018-12-17
    • 2016-02-13
    • 2021-06-15
    • 2019-05-09
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    • 2012-08-10
    相关资源
    最近更新 更多