2017-01-27 3 views
3

나는 laravel을 처음 시작했습니다. localhost에서 laravel 5.3을 사용하고 있는데 아약스 게시물 요청을 사용하여 컨트롤러 기능에 데이터를 게시하고 있습니다. 나는 마스터 템플릿의 head 섹션로컬 호스트의 laravel 5.3에있는 ajax 게시 요청의 CSRF 토큰 불일치 예외

<meta name="csrf-token" content="{{ csrf_token() }}"> 

안쪽이 같은 CSRF 토큰을 통합 한 나는이

처럼 버튼을 클릭에 데이터를 전송하고

<script type="text/javascript"> 
    $(document).ready(function() { 
     $.ajaxSetup({ 
     headers: { 
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
     } 

     }); 
     console.log($('meta[name="csrf-token"]').attr('content')); 
    }); 
    </script> 

이 스크립트를 추가 jQuery를 포함한 후

$.ajax({ 
    type: "POST", 
    url: './add_to_cart', 
    data: {id:prod_id,name: name,price:price}, 
    success: function(msg) { 

    } 
}); 

첫 번째 호출이 올바르게 수행되고 오류는 발생하지 않습니다. 그러나 VerifyCsrfToken.php 라인 67의 첫 번째 호출 각 호출의 반환 오류

TokenMismatchException 후 :

여기

오류 스크린 샷은 다음과 같습니다 error screenshot

답변

0

내 코드를 신중하게 검토 한 후에이 코드가이 작업을 수행하고 있음을 발견했습니다. 세션 :: flush(); 이 문제를 제거한 후 해결되었습니다. 그들의 노력에 특별히 감사드립니다. @Naveen Kumar

0

전화 헤더 아약스 기능이 별도로 포함되어 있지 않습니다. 나는 당신의 메타 태그 그래서이

$.ajax({ 
    type: "POST", 
    url: '/add_to_cart', 
    headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}, 
    data: {id:prod_id,name: name,price:price}, 
    success: function(msg) { 

    } 
}); 

AJAX 호출이 완료 될 때마다 같은이

<meta name="csrf-token" content="{{ csrf_token() }}"> 

처럼 생각, 헤더 csrf_token() 포함됩니다.

+0

답장을 보내 주셔서 감사합니다. 설명 된 바와 같이 메타 태그가 포함되어 있습니다. 귀하의 솔루션을 시도했지만 여전히 동일한 error.First 호출 오류가 있지만 그 후에 그것은 예외를 throw합니다. – dev

+0

또한 헤더를 검사하고 각 요청에 csrf 토큰이 포함되어 있지만 여전히 문제가 무엇인지 알지 못합니다. – dev

+0

'/ add_to_cart' 경로에'api' 또는'web' 미들웨어가 있는지 확인할 수 있습니까? 토큰이 모든 POST 요청과 함께 변경되면서 문제가 될 수있는 웹입니다. 그것을 'api'로 변경하십시오. Laravel 5.3에서는 라우트가'routes/api.php' 파일에 있는지 확인합니다. –

0

난 당신이 시도해야한다고 생각 :

<meta name="csrf-token" content="{{ csrf_token() }}"> 

$.ajax({ 
    type: "POST", 
    url: './add_to_cart', 
    headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}, 
    data: {"_token": "{{ csrf_token() }}",id:prod_id,name: name,price:price}, 
    success: function(msg) { 

    } 
}); 

희망 당신을 위해이 일!

+0

귀하의 도움에 감사드립니다. 제공된 모든 솔루션을 시도했지만 문제가 해결되지 않았습니다. @Naveen Kumar 토큰이 생성되고 있지만 토큰이 일치하지 않는 예외를 제공하는 코드를 시도했습니다. 크롬 콘솔을 살펴보십시오. AJAX 요청 의 스크린 샷 https://www.screencast.com/t/gntfBMuhlLf – dev

+0

귀하의 솔루션이 토큰에 값을 할당하지 않습니다. 친절히 스크린 샷을보실 수 있습니다. https://www.screencast.com/t/ptnBaziuruZ – dev