jquery中的$ .post函数不起作用

时间:2017-08-08 00:59:51

标签: javascript jquery ajax laravel-5

我使用laravel5.1和jquery,我试图使用ajax提交表单。我的代码出了什么问题?我只是使用简单的ajax请求发布数据。请参阅下面的代码。

<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::post('/ajax-push', [
    'as' => 'ajax-push',
    'uses' => 'PagesController@postAjaxCreate'
]);

控制器

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;
    });
});

1 个答案:

答案 0 :(得分:1)

你可以尝试

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

但我个人以这种方式使用它:

将其放在标题

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

并在剧本

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

然后我做了ajax调用:

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