2015-01-19 4 views
0

им пытаются сделать AJAX запрос в laravel5 но это всегда реакция на ошибку 500. здесь мой кодПроблема с CSRF и Ajax запрос Laravel5

route.php

Route::post('manager/category/new', ['as' => 'category.store', 'uses' => '[email protected]']); 

HTML:

{!! Form::open(['id' => 'new-category-form']) !!} <div class="modal fade" id="new-category" tabindex="-1" role="dialog" aria-labelledby="new-category-label" aria-hidden="true"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
       <h4 class="modal-title" id="new-category-label">New category</h4> 
      </div> 
      <div class="modal-body"> 
       <form> 
        <div class="form-group"> 
         <label for="parent-category-id" id="parent-category-name" class="control-label">Parent category: &xxx</label> 
         <input type="hidden" class="form-control" id="parent-category-id" name="parent_category_id"> 
        </div> 
        <div class="form-group"> 
         <label for="category-name" class="control-label">Category name:</label> 
         <input type="text" class="form-control" id="category-name" name="category_name" /> 
        </div> 
       </form> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 
       <button type="button" class="btn btn-primary">Add</button> 
      </div> 
     </div> 
    </div> </div> {!! Form::close() !!} 

js:

$(document).ready(function(){ 
     $('#new-category').on('show.bs.modal', function (event) { 
      var button = $(event.relatedTarget); // Button that triggered the modal 
      var recipient = button.data('whatever'); 
      var modal = $(this); 
      modal.find('#parent-category-name').html('Parent category: ' + recipient.name); 
      modal.find('#parent-category-id').val(recipient.value); 
      modal.find('.btn-primary').click(function(){ 
       console.log($('#new-category-form').serialize()); 
       console.log('{!!Session::token()!!}'); 
       $.ajax({ 
        url: "{!!route('category.store')!!}", 
        context: $('#new-category-form').serialize(), 
        type: 'post' 
       }) 
      }); 
     }) 
    }); 

я loged "_token" и его матч, но запрос все еще не

_token = Nt9S0uED4JZ7toALlGP6VY16w2aj4KCCENn0tapL & parent_category_id = 0 & category_name = 345345

session_token = Nt9S0uED4JZ7toALlGP6VY16w2aj4KCCENn0tapL

POST http://localhost:8000/manager/category/new 500 (Внутренний сервер Ошибка)

Просьба помочь мне :(

+0

Включите ошибки и посмотреть, что фактическая ошибка 500 сервера – Laurence

+0

я был проверен. его csrf не соответствует ошибке :( –

ответ

0

Из док:

http://laravel.com/docs/master/routing#csrf-protection

«В дополнение к поиску лексемы CSRF в качестве„параметра POST“, промежуточное программное обеспечение будет также проверить для запрос X-CSRF-ЗНАК заголовок.»

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

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
});