如何在laravel中ajax成功后显示flash消息?
Posted
技术标签:
【中文标题】如何在laravel中ajax成功后显示flash消息?【英文标题】:How to show flash message after ajax success in laravel? 【发布时间】:2021-08-17 14:43:45 【问题描述】:我想在重定向到通过 ajax 请求查看后显示一条 flash 消息。
这是我的控制器代码
\Session::flash('success', __('Password change successfully. Please Login again'));
$data = array();
return response()->json([
'success' => true,
'data' => $data,
]);
这是我的 ajax 请求
$.ajax(
url: my-url
method: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData: false,
dataType: "json",
success: function(response)
if (response.success == true)
var url =" route('admin.dashboard') "; //the url I want to redirect to
$(location).attr('href', url);
, //success end
);
它重定向到我的刀片视图,我使用下面的代码来显示一个 Flash 消息
@if (session()->has('success'))
<div class="alert alert-success alert-solid alert-dismissible shadow-sm p-3 mb-5 rounded"
role="alert">
session('success')
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
@endif
但它没有显示任何消息。
谁能告诉我如何显示一条消息?
【问题讨论】:
【参考方案1】:\Session::flash
仅适用于下一个请求。这意味着您无法在页面刷新一次或重定向后获得它的值。您可能面临的情况是您正在放置 Flash 数据,然后通过 ajax 调用将其取回,然后再次将其重定向到另一个页面/URL。试试reflash()
方法。它将帮助您为接下来的几个请求保留数据。
\Session::flash('success', __('Password change successfully. Please Login again'));
\Session::reflash(); // add this line
欲了解更多信息:https://laravel.com/docs/6.x/session#flash-data
【讨论】:
以上是关于如何在laravel中ajax成功后显示flash消息?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.2 & AJAX - 重定向后显示成功消息