2016-08-04 4 views
0

내가 AJAX POST 요청을 사용하여 CSRF 토큰으로 보내고있다 - 내 로컬 서버에서 잘 작동하지만, 내 IIS의 SERV에 TokenMismatchException in VerifyCsrfToken.php line 67:Laravel 5.2 | CSRF 토큰이 일치하지

이 코드입니다 : 입력

   $.ajax({ 
        url  : '{{ route('dashboard.ajax.update') }}', 
        method : 'POST', 
        data : { 
         table  : 'categories', 
         data  : { 
          order: $count 
         }, 
         conditions : { 
          id: $id 
         } 
        }, 
        dataType: 'JSON', 
        headers : { 
         "X-CSRF-TOKEN": '{{ csrf_token() }}' 
        } 
       }); 

콘솔이 요청을 볼 수 있습니다 : X-CSRF-TOKEN:w3liodqf8bdOvWH9uVTzLHVVsE0L1uIlCpnOyVVS

이 문제가 발생할 수있는 이유는 무엇입니까?

+0

뷰 토큰 ='{{Session :: token()}} '에서 변수를 만들고 헤더를 사용하지 않고'_token : token'을 사용하여 데이터를 전달하려고하는 이유는 무엇입니까? –

+0

문제는 세션이 저장된 장소 일 수도 있습니다. [More] (https://laravel.com/docs/5.2/session) –

답변

0
$.ajax({ 
     type: 'POST', 
     url: 'stringUrl', 
     beforeSend: function (xhr) { 
      xhr.setRequestHeader('X-CSRF-TOKEN', '{{ csrf_token() }}'); 
     }, 
     data: { 
      'id': $id // etc.. 
     }, 
     cache: false, 
     error: function (xhr, type, exception) { 
      console.log("ajax error response type " + type); 
     } 
    }); 

봅니다 "beforeSend"이벤트

0

문제는 내 세션이었다에 그것을 설정합니다. 모든 세션 파일을 정리하고 캐시를 지우고 php artisan key:generate을 사용했습니다. 이것 후에 - 꽤 괜찮아.