使用AJAX和Laravel 5.1发送表单以进行创建

时间:2015-07-14 20:44:58

标签: php jquery ajax laravel-5.1

我正在使用Laravel 5.1开发一个应用程序,我在发送ajax请求时遇到问题我有下一个代码:

创建视图:

{!!Form::open()!!}

    <div class="form-group">
   {!!Form::label('genero','Genre:')!!}
   {!!Form::text('genre',null,['id'=> 'genre','class'=>'form-control'])!!}
    </div>

    {!!link_to('#', $title = 'Create', $attributes = ['id'=> 'create','class'=>'btn btn-primary'], $secure = null)!!}
{!!Form::close()!!}

Ajax请愿:

$("#create").click(function(){
 var genre = $("#genre").val();
 var route = "http://localhost:8000/genre";
 $.ajax({
   url: route,
   type: 'POST',
   dataType: 'json'
   data: {genre : genre}
  });
})

在我的路线中:

Route::resource('genre','GenreController');

但是当发送请愿书时,我有下一个错误:

POST http://localhost:8000/genre 500 (Internal Server Error)

感谢。

2 个答案:

答案 0 :(得分:1)

在默认模板中,添加元标记

<meta name="_token" content="{!! csrf_token() !!}"/>

然后添加脚本代码:

<script type="text/javascript">
$.ajaxSetup({
headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }
});
</script>

然后你可以使用ajax调用......正常

答案 1 :(得分:0)

我的解决方案是下一个代码:

$("#registro").click(function(){
var data = $("#genre").val();
var route = "http://localhost:8000/genre";
var token = document.getElementById('token').value

$.ajax({
  url: route,
  headers: {'X-CSRF-TOKEN': token},
  type: 'POST',
  dataType: 'json',
  data: {data : data}
 });
});