javascript - 如何在 ajax 成功重定向上设置 flash 消息
问题描述
据我所知,我已经正确地遵循了这个问题的其他答案。但是,无论出于何种原因,我的实现都不起作用。
我正在发出 ajax 请求并location.href
在成功时重定向,并试图弄清楚如何设置 Flash 消息。
这是在我的控制器中:
if payment_service.succeeded?
flash.notice = 'Your subscription was set up successfully!'
json = { success: true, redirect_path: root_path }
end
respond_to do |format|
format.json { render json: json, status: 200 }
end
这就是进行 ajax 调用的地方:
fetch('/subscriptions/confirm_payment', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ payment_method_id: result.paymentMethod.id })
}).then(function(result) {
result.json().then(function(json) {
if (response.error) {
displayError(result.error);
} else if (response.success) {
location.href = response.redirect_path;
}
})
我希望在重定向到redirect_path
. 但不显示闪光灯。
解决方案
你可以使用flash.keep()
方法。
它将保留flash
消息内容以供进一步操作。
https://api.rubyonrails.org/v5.1.7/classes/ActionDispatch/Flash/FlashHash.html#method-i-keep
if payment_service.succeeded?
flash.keep(:notice) = 'Your subscription was set up successfully!'
json = { success: true, redirect_path: root_path }
end
推荐阅读
- php - 将 HTML 链接添加到 PHP 消息数组
- rust - 如何从返回异步的 Vec 闭包中加入_all?
- google-apps-script - Quandl API 在 Google appscript 上返回 HTML 响应
- javascript - 画布绘制触摸未绘制
- python-3.x - 具有多个输入的 Python 字典列表搜索
- node.js - 需要帮助以解决 npm start 错误
- jaxb - 通过 WebServiceGatewaySupport 编组失败并出现 JAXBException: class
在此上下文中也不知道它的任何超类 - c# - 如何获取带有版本的操作系统安装补丁详细信息
- php - 在 WordPress 中为 body 标签添加自定义样式
- javascript - Puppeteer 按他的班级名称选择一个段落