Php 在Laravel4中使用ajax请求时会话过期

Php 在Laravel4中使用ajax请求时会话过期,php,jquery,ajax,laravel,laravel-4,Php,Jquery,Ajax,Laravel,Laravel 4,我在使用ajax请求时遇到问题,会话过期,我不明白为什么 我用ajax获取数据以“实时”显示信息,基本上我是从表中显示一个读取字段,工作正常,但有时会话过期,我的web应用程序重定向到登录页面 这是我的代码: 看法 @foreach($data->getCollection()->all()作为$value) setInterval(函数(){ //--通知ID{{$value->ID} 变量id={{$value->id}; $.ajax({ 键入:“GET”, 数据类型:“html”, ur

我在使用ajax请求时遇到问题,会话过期,我不明白为什么

我用ajax获取数据以“实时”显示信息,基本上我是从表中显示一个读取字段,工作正常,但有时会话过期,我的web应用程序重定向到登录页面

这是我的代码:

看法

@foreach($data->getCollection()->all()作为$value)
setInterval(函数(){
//--通知ID{{$value->ID}
变量id={{$value->id};
$.ajax({
键入:“GET”,
数据类型:“html”,
url:“{url('/')}}/admin/notifications/email/tracking/read”,
数据:“id=”+id,
成功:函数(数据){
//--读取=1
如果(数据==1)
{ 
数据='读取'
}否则{
数据='未读'
}
$(“#read{{{$value->id}}”).html(数据);
},
});
}, 3000); // 每60秒发送一次请求
@endforeach
控制器
//--检查是否已读取
公共功能read(){
if(请求::ajax())
{
$id=Input::get('id');
$data=notificationsMailTracking::find($id);
返回$data->read;
}
}

高级版谢谢。

不太相关,但你可以只做
{url('admin/notifications/email/tracking/read')}
而不是
{url('/')}/admin/notifications/email/tracking/read
谢谢,但这不是问题所在。你注意到第一次请求后会话过期多长时间了吗?2小时或更短?几分钟,有时甚至几秒钟。当我删除jquery和ajax脚本时,一切正常。我尝试返回一个整数,但没有从数据库中检索数据,并且没有发生,它没有过期会话,所以问题是laravel,你知道吗?没有关系,但你可以只做
{url('admin/notifications/email/tracking/read')}
而不是
{{url('/')}/admin/notifications/email/tracking/read
谢谢,但这不是问题。您注意到第一次请求后会话过期多长时间了吗?2小时或更短?几分钟,有时甚至几秒钟。当我删除jquery和ajax脚本时,一切正常。我尝试返回一个整数,但没有从数据库中检索数据,并且没有发生,它没有过期会话过期,所以问题是laravel,知道吗?
@foreach($data->getCollection()->all() as $value)
  <div id="read{{ $value->id }}"></div>
  <script type="text/javascript">
  setInterval(function(){
    //-- Notification ID {{ $value->id }}
    var id = {{ $value->id }};
    $.ajax({
        type: 'GET',
        dataType: 'html',
        url: "{{ url('/') }}/admin/notifications/email/tracking/read",
        data: "id=" + id,
        success: function(data){ 
        //-- Read = 1
        if(data == 1) 
        { 
          data = 'Read'
        } else {
          data = 'Unread'
        }
        $("#read{{ $value->id }}").html(data);
        },
      });
  }, 3000); // send request each 60 seconds
  </script>
@endforeach

Controller

//-- Check if is read
public function read() {
  if(Request::ajax())
    {
    $id = Input::get('id');
    $data = NotificationsEmailTracking::find($id);
    return $data->read;
  }
}