2016-03-06 124 views
0

我想创造职位像钮但是当我尝试它,我得到这个错误:创建Like按钮使用AJAX - laravel 5

TokenMismatchException in VerifyCsrfToken.php line 46: 

    in VerifyCsrfToken.php line 46 
    at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 17 
    at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 125 
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 55 
    at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 125 
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 61 
    at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 125 
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 36 
    at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 125 
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 40 
    at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 125 
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42 
    at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 125 
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101 
    at Pipeline->then(object(Closure)) in Kernel.php line 115 
    at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 84 
    at Kernel->handle(object(Request)) in index.php line 53 
    at require_once('C:\wamp\www\forum\public\index.php') in server.php line 21 

这是我的表格:

<form method="POST" id="post_up" action=""> 
    <input type="hidden" name="post" value="{{ $post->id }}" /> 
    <input type="hidden" name="user" value="{{ Auth::user()->id }}" /> 
    <button type="submit" class="btn btn-default" aria-label="Left Align"> 
     <span class="glyphicon glyphicon-menu-up" aria-hidden="true"></span> 
    </button> 
</form> 

的jQuery代码:

<script type="text/javascript" src="{{ asset('js/jquery-2.2.1.js')}}"></script> 
<script type="text/javascript"> 
    $(function(){ 
     $(#errors_).hide(); 
     $(#post_up).submit(function(e){ 
       e.preventDefault(); 
       var post = $('input[name="post"]').val(); 
       var user = $('input[name="user"]').val(); 
       var data = new FormData(); 
       data.append('user',user); 
       data.append('post',post); 
       $.ajax({ 
        url:'post/post_vote_up', 
        type:'POST', 
        data:data, 
        contentType:"multipart/form-data", 
        processData:false, 
        success:function(data){alert('Section created :)')}, 
        error:function(data){ 
         $(#errors_).show(); 
         $(#errors_).html(''); 
         var errors = data.responseJSON; 
         $.each(errors,function(k,v){ 
          $(#errors_).append(v+'<br>'); 
         }) 
        } 
       }); 
      } 
     }) 
    }) 
</script> 

控制器功能:

从这个功能

路线:

路线::交( '/后/ post_vote_up', 'PostController中@ post_up');

回答

1

写你的表单标签之后:

<input type="hidden" name="_token" value="{{ csrf_token() }}"> 

希望这有助于你..! !

0

这是一种中间件。我想你应该发送CSRF令牌与您的请求。如果你已经登录,那么它应该在你的cookies中。尝试找到它,然后将其作为标题添加到beforeSend函数中。我想这取决于你在后端使用什么框架。这就是我如何做到这一点对我的Django应用程序

在$阿贾克斯({

beforeSend:function(xhr, settings){ a=document.cookie.substr(document.cookie.indexOf('csrftoken')); if (a.indexOf('=') != -1)a = a.substr(a.indexOf('=') + 1); xhr.setRequestHeader("X-CSRFToken", a);},