![](/img/trans.png)
[英]Laravel 5 Ajax 500 (Internal Server Error) when making a post request
[英]how to solve Ajax post request show 500 (Internal Server Error) in laravel
在我的項目中,我想使用ajax將數據存儲到數據庫中,但是當我提交發布請求時,它顯示類似(500(Internal Server Error))的錯誤,我在Google上搜索了好幾次,但是仍然存在相同的問題,這是我的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());
}
}
您正在嘗試將要提交的數據插入到ajax請求中:
data:{
_token: '{!! csrf_token() !!}',
data
}
這意味着您正在嘗試創建一個包含兩個鍵的AjaxCrud
資源: _token
和data
。 我想您只想存儲包含在data
對象中的data
,即您的序列化表格,應包含name
屬性。
因此,您有多種解決方案,第一種是從數據對象創建AjaxCrud資源:
$item = AjaxCrud::create($request->get('data'));
另一種解決方案是僅在ajaxRequest中發送所需的數據,並將CSRF令牌設置為請求的標頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.