我不能使用laravel 5.2中的ajax将数据插入db

时间:2017-03-02 07:31:50

标签: javascript php ajax laravel-5 laravel-5.2

我想知道它是否因为模型,而且我不知道在哪里放模型文件以及在其上写什么,我对laravel 5.2来说是新的

html(testing.blade.php)

<input type="text"id="name" name="name">
<button type="submit" id="add">ADD</button>

AJAX

    $("#add").click(function() {
        $.ajax({
            type: 'post',
            url: 'addItem',
            data: {
                '_token': $('input[name=_token]').val(),
                'name': $('input[name=name]').val()
            },
            success: function(data) {
                alert(data);
            },
        });
        $('#name').val('');
    });

路由

Route::post ('test', 'CommentsController@addItem' );

控制器

public function addItem(Request $request) {
    $data = new Comments ();
    $data->comment = $request->name;
    $data->save ();
    return response ()->json ( $data );
}

1 个答案:

答案 0 :(得分:1)

  • 您需要添加csrf字段并将此值发送到服务器。
  • ajax url需要与route元素匹配(不是与控制器函数名称)

<强> BLADE:

{{ csrf_field() }}
<input type="text" id="commentName" name="commentName">
<button type="submit" id="add">ADD</button>

<强> AJAX:

$("#add").click(function() {
  $.ajax({
    type: 'post',
    url: '/add-item',
    data: {
      '_token': $('input[name="_token"]').val(),
      'name': $('input[name="commentName"]').val()
    },
    success: function(data) {
      alert(data);
    },
  });
  $('#name').val('');
});

<强> ROUTE:

Route::post ('add-item', 'CommentsController@addItem');

Documentation regarding to CSRF Protection.