Laravel通过Ajax登录:不显示Flash消息

时间:2017-10-03 20:53:26

标签: jquery ajax laravel laravel-5.5

通过ajax成功登录后,我无法显示我的flash消息。

我试过Session::put()& Session::forget()也要修复它。但它没有用。

如何解决?

LoginController

//Overriding
protected function authenticated(Request $request, $user)
{
    Session::flash('loginSuccess', 'Welcome Back <b>'.$user->full_name.'</b>!');
    return redirect()->route('home');
}

Js

$.ajax({
    url: form.action,
    type: form.method,
    data: $(form).serialize(),

    success: function(response){
        $('#log-v-error').html('');
        window.location.href='/';
    },
});

Views

@if(Session::has('loginSuccess'))
    <div class="alert alert-warning">{!! Session::get('loginSuccess') !!}</div>
@endif

1 个答案:

答案 0 :(得分:0)

闪存仅针对当前响应设置,该响应将转到ajax成功函数。

window.location触发第二个请求,在没有连接闪存的情况下加载。

您应该返回成功值,而不是返回重定向,然后您的成功函数可以在启动重定向之前显示消息片段。