$.post function in jquery is not working

Im using laravel5.1 with jquery, and Im trying to use ajax to submit a form. What’s wrong with my code? Im just using the simple ajax request to post a data. Please see my code below.

<div id="result"></div>
<form action="" method="post" id="create">
   <div class="form-group">
      <label for="name" class="control-label">Name</label>
      <input type="text" name="name" id="name" class="form-control">
   </div>
   <div class="form-group">
      <label for="description" class="control-label">Description</label>
      <textarea name="description" id="description" cols="30" rows="10" class="form-control"></textarea>
   </div>
   <div class="form-group">
      <input type="submit" value="Create" class="btn btn-success">
   </div>
   {{ csrf_field() }}
</form>

route

Route::post('/ajax-push', [
    'as' => 'ajax-push',
    'uses' => 'PagesController@postAjaxCreate'
]);

Controller

public function postAjaxCreate(Request $request){
        echo 'Hello there!';
    }

JS

$(document).ready(function(){
    var url = '{{ route('ajax-push') }}';
    $('#create').on('submit', function(){
        $.post(url, function(data){
            $('#result').html(data);
        });

        return false;
    });
});

You can Try

$_token = "{{ csrf_token() }}";
$.post( url, { _token: $_token })
.done(function( data )
{
     $('#result').html(data);
});

But personally I use it in this way:

put this in the header

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

and this on the script

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

then i make the ajax calls:

$.ajax({
       type: "post",
       url: "{{ route("a.route") }}",
       data: $("#form").serialize(),
       dataType: "json",
       success: function (datos) {
           //mycode
       },
       error: function (request, status, error) {
           console.log(error);
       }
   });