在我的项目中,我想使用ajax将数据存储到数据库中,但是当我提交帖子请求时,它显示错误,如(500(内部服务器错误))我谷歌它几次,但仍然是相同的问题 这是我的ajax代码
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('#form-insert').on('submit', function(e){
e.preventDefault();
var data = $(this).serialize();
var url = $(this).attr('action');
var post = $(this).attr('method');
$.ajax({
type: post,
url: url,
data:{
_token: '{!! csrf_token() !!}',
data
},
dataType: 'json',
success:function(data){
console.log(data)
}
})
})
这是我的观点
<form method="post" id="form-insert" action="{{ URL::to('item/store')}}">
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" name="name">
</div>
<div class="form-group">
<label for="text">Email address:</label>
<input type="email" class="form-control" name="email">
</div>
<div class="form-group">
<label for="contact_no">Contact No:</label>
<input type="text" class="form-control" name="contact_no">
</div>
<button type="submit" class="btn btn-primary pull-right" id="add">Submit</button>
</form>
这是我的路线
Route::post('/item/store', 'AjaxCrudController@store');
这是我的控制器
public function store(Request $request)
{
if($request->ajax()){
$item = AjaxCrud::create($request->all());
return response($item);
//return response($request->all());
}
}
答案 0 :(得分:0)
您正在尝试在ajax请求中插入您提交的数据:
data:{
_token: '{!! csrf_token() !!}',
data
}
这意味着您正在尝试创建包含两个密钥的AjaxCrud
资源:_token
和data
。我想你只想存储data
对象中包含的数据,这是你的序列化形式,应该包含name
属性。
所以你有多个解决方案,第一个是从数据对象创建AjaxCrud资源:
$item = AjaxCrud::create($request->get('data'));
另一种解决方案是仅在ajaxRequest中发送您想要的数据,并将CSRF令牌设置为请求的标头。