我使用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;
});
});
答案 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);
}
});