2014-10-14 3 views
2

DOM로드가 끝나면 바로 ajax 호출이 발생하지만 사용자가 새로 고침을 눌렀을 때 세션 변수를 저장하여 Ajax 호출을 다시 실행하면 상황을 방지하려고합니다.Laravel Ajax 및 세션 문제?

<?php 
function postMyAjax() { 

$already_fired = \Session::get('ajax_fired'); // <-- Always returns NULL! 
if (! empty($already_fired)) { 
    return Response::json(array('already fired')); 
} 

# Remember that we fired that call 
\Session::put('ajax_fired',1); // <-- Fails to set? 

return Response::json(array('ok')); 

} 

어떤 아이디어 : 는하지만, AJAX 요청을 통해 세션 항목을 저장에 문제가 될 다음 코드를 고려하는 것 같다?

+0

첫 번째 요청이 실행 된 후 쿠키의 값을 설정하고 JS에서 확인하십시오. –

+0

다른 좋은 옵션이지만 내 세션 문제를 해결하지 못함/ – Broshi

답변

0

질문에 대답하기 위해 이것은 동시 요청에서 세션 처리가 불안정한 laravel 4.1 이후 버그였습니다. 그러나 나는 한 번에 한 번만 요청하여이 점 또한 경험했다. 문제를 정확하게 지적 할 방법이없는 것 같습니다. github issues에서 여기를 읽으십시오.

0

@Broshi 당신이이 일을 주시겠습니까?

  1. 제거를 "\"\Session::get('ajax_fired');에.
  2. Session::all()을 사용하고 앞에 exit을 넣습니다.

그 후에 결과를 알려주십시오. 감사.

+0

'\ Session :: get ('ajax_fired');에서 "\"가 제거되었지만 도움이되지 않았습니다. 또한'Session :: all()'은 아무런 유용한 것을 보여주지 않았다. – Broshi