我试图通过Laravel中的AJAX请求设置会话变量。 很简单,但似乎我错过了一些东西。我的页面在布局Cookie协议框中。单击此框内的“我同意cookie”按钮后,AJAX请求在控制器中进行,它将设置会话变量。如果设置了该会话变量,则它将始终隐藏cookie协议框。
我在前端的ajax请求:
<script>
jQuery(document).ready(function(){
jQuery('#accept_cookies_btn').click(function(e){
e.preventDefault();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
}
});
jQuery.ajax({
url: "{{ url('/acceptcookies') }}",
method: 'post',
data: {
},
success: function(){
$("#cookies_con").hide();
}});
});
});
</script>
控制器:
class cookiesController extends Controller
{
public function acceptcookies(Request $request){
$request->session()->put('cookies', 'agreed');
return 'success';
}
}
PS:AJAX的响应良好,因为#cookies_con元素在此之后隐藏。基本上,问题在于它不会设置会话变量(因为如果稍后浏览,则不会设置此会话变量,即,我不能将其用作隐藏cookie协议框的条件)。
PS2:其他所有设备都按顺序。