我使用 Ajax 將資料發送到控制器,不幸的是,當我檢索資料時,它是空的,什么也沒有發送。盡管在發送之前通過 JQuery 獲取資料時它確實給了我資料。
下面是Ajax的代碼-------------------
$.ajax({
url: $('form#add-user-form').attr('action'),
method: $('form#add-user-form').attr('method'),
data: form.serializeArray(),
processData: false,
dataType: 'json',
contentType: false,
beforeSend:function(){
$(form).find('span.error-text').text('');
alert('working' " " user['fname']);
},
success:function(data){
if (data.code == 0 ){
$.each (data.error, function(prefix, value){
alert(prefix ' ' value[0]);
$(form).find('span.' prefix '_error').text(value[0]);
});
alert('complete');
}else {
$(form)[0].reset();
alert(data.msg)
}
}
});
-----------------Laravel Controller 接收資料的方法----------------
public function store(Request $request)
{
$validator = \Validator::make($request -> all(), ['fname' => 'required|min:5|max:25',
'lname' => 'required|min:5|max:25',
'email' => 'required|email|unique:users',
'pass' => 'required|min:8|max:20|',
'confirm-pass' => 'required|min:8|max:20'
]);
if (!$validator -> passes() ){
return response()->json(['code'=> 0, 'error'=> $validator->errors()->toArray(), $request->fname]);
}else {
$user = new users();
$user -> name = $request -> fname ;
$user -> email = $request -> email ;
$user -> password = $request -> pass;
$query = $user -> save();
if ( !$query ){
return response() -> json(['code'=> 0, 'msg' => 'something went wrong']);
}else {
return response() -> json(['code' => 1, 'msg' => 'users has been successfully added']);
}
}
}
uj5u.com熱心網友回復:
我找到了答案,我沒有使用 $.ajax 方法,而是將其替換為 JQuery 的 $.post 函式,并且一切正常。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/364826.html
