【发布时间】:2022-02-16 18:54:54
【问题描述】:
我的控制器.php
$request->session()->put('used_coupons', json_encode($dizi[$cart[0]->cart_id]));
$request->session()->save();
$response = ['result' => true];
echo json_encode($response);
我的阿贾克斯
$('button.481andrb2n1mayore').click(function() {
const code = $('input#1bwbabchfb4n2eroy').val()
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': jQuery('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'POST',
data: {'n3bqshfia5m1': code, 'amdj5h3b1avzfhfn42ll__': $('input#ey4b1bVDBT4m3n1b48qnabe_______').val()},
dataType: 'json',
beforeSend: function() {
$('input#1bwbabchfb4n2eroy').val('Please wait!');
$('input#1bwbabchfb4n2eroy').attr('disabled', true);
$('button.481andrb2n1mayore').attr('disabled', true)
$('div.couponCodeMessageDiv').css('display', 'none');
},
success: function (data) {
console.log(data)
if (data.result == false) {
$('div.couponCodeMessageDiv').css('display', 'block');
$('div.couponCodeMessageDiv span').html(data.message);
}
if (data.result == true) {
location.reload();
}
},
error: function (data) {
$('div.couponCodeMessageDiv').css('display', 'block');
$('div.couponCodeMessageDiv span').html("Error!");
alert('hata')
console.log(data);
},
complete: function(data) {
$('input#1bwbabchfb4n2eroy').val('deneme20');
$('input#1bwbabchfb4n2eroy').attr('disabled', false);
$('button.481andrb2n1mayore').attr('disabled', false)
}
});
})
我可以看到会话,但刷新页面后会话消失了。 如果我更新与会话数据无关的数据库,在此过程中,会话保存成功,但是我不想将数据保留在数据库中或更新。 如何解决这个问题呢? 谢谢。
【问题讨论】:
-
什么是
$request->session()->save()?我认为你不需要那个。 -
我尝试使用或不使用 $request->session()->save() 但仍然无法正常工作
-
after I refresh the page session is gone是什么意思?您是否正在触发另一个 AJAX 请求?您正在运行什么代码来确定“会话已消失”? -
假设我们是客户,我们想使用优惠券代码,我们将此代码输入输入并单击应用按钮。 ajax 获取代码并通过发布请求发送。然后将优惠券保存到与控制器的会话中。然后控制器将ajax发送到成功json。然后需要刷新页面以使刀片可以向客户显示已应用优惠券。我可以设置会话,但是当我刷新页面时,会话似乎是空的 ("") 我正在检查其他运行 dd(session()->all()); 的路由
-
如果不刷新页面,我认为不会显示会话消息。据我所知,您不能将会话视为反应属性。如果要在 ajax 请求后传递消息,则需要将其附加到响应本身中