2016-06-11 2 views
2

어떻게 설명 할 수 있습니까? 나는 창에서 서버를 시작하고 단지 크롬에 표시하는 경우 청소 세션 및 캐시 TokenMismatchException AJAX 요청에 대한 RANDOM

  • 문제에 대한 레디 스를 사용 Laravel
  • 를 설치

    1. 에만 발생합니다.

      공공 기능 사용자() {

      : 데이터가있는 JSON을 반환 메타 <meta name="csrf-token" content="{{ csrf_token() }}" />

    2. 에 CSRF 설정

      $.ajaxSetup({ 
          headers: { 
           'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
          }, 
          data: { 
           _token: $('meta[name="csrf-token"]').attr('content') 
          } 
      }); 
      
      for(var i = 0; i < 5; i++){ 
      
          getUsers(); 
      } 
      
      function getUsers() { 
          $.ajax({ 
           url: '/users', 
           type: 'POST', 
           success: function(data) { 
            console.log(data); 
           } 
          }); 
      } 
      
    3. : 간단한 JS 아약스 호출 기능을 사용

    4. $users = User::all(); 
      
      return response()->json([ 
          'users' => $users, 
      ]); 
      

      }

    5. 비디오의 마지막 부분에서 RANDOM TokenMismatchException을 볼 수 있습니다. 토큰도 변경되지 않지만 언젠가는 오류가 발생합니다.

    https://www.youtube.com/watch?v=QDucHoP647g

    나는이 문제가 년에서 논의 된 알고 있지만 왜 이것에 대한 해결책을 존재하지 않는?

    나는 또한 laravel github에 올렸지 만 어떤 해결책도 내 문제를 해결하지 못했습니다.

  • 답변

    0

    왜 토큰을 두 번 보냅니 까? 해당 데이터 부분을 제거하십시오. $.ajaxSetup()

    그리고 왜 사용자를 얻는 데 POST를 사용하고 있습니까? 대신 GET을 사용하십시오.

    +0

    이것은 예입니다. POST/users에 삽입을한다고 가정합니다. 오류가 발생합니다. 내 테스트에서 방금 TokenMismatchException 문제가 내가 나를 기억하면 발생한다는 것을 알았습니다. (토큰 중 하나를 제거하고 한 번 보냄). –

    +0

    이것은 실제로 저자의 질문에 대한 답변이 아닙니다. – antongorodezkiy

    관련 문제