我试图通过registration
中的ajax
进行用户laravel
处理。但我无法做到这一点。
路线
Route::get('/register', 'Auth\AuthController@getRegister')->name('register');
Route::post('/register', 'Auth\AuthController@postRegister')->name('postRegister');
HTML表单
<form action="{{ route('postRegister') }}" method="POST" id="registerForm">
<h4>REGISTER NOW</h4>
<hr><br>
<input type="text" name="name" class="form-control" placeholder="Name">
<br>
<input type="number" name="student_id" class="form-control" placeholder="Student ID">
<br>
<input type="email" name="email" class="form-control" placeholder="Email address">
<br>
<input type="number" name="phone" class="form-control" placeholder="Phone no">
<br>
<input type="password" name="password" id="password" class="form-control" placeholder="Choose password">
<br>
<input type="password" name="password_confirmation" class="form-control" placeholder="Confirm password">
<br>
<div class="row">
<div class="col-md-12 text-right">
<button type="submit" class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect" id="registerButton"><span id="regLoader" style="display: none"><i class="fa fa-spinner fa-pulse"></i><span class="sr-only">Loading...</span> </span>
Register</button>
</div>
</div>
{{ csrf_field() }}
</form>
JS
$('#registerForm').submit(function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url: '/register',
data: $(this).serialize(),
dataType: 'json',
success: function(data){
},
error: function(data){
}
});
});
答案 0 :(得分:0)
您的代码看起来很完美。
1)可能某些表单验证失败,并且会阻止数据存储在数据库中。
注释掉服务器端验证(如果有)并再次检查。
2)如果这不起作用,请在AJAX中注释dataType: 'json'
并再次检查。
另外,在ajax的成功方法中打印console.log()
进行故障排除。
如果没有,请显示您的控制器代码。
由于
答案 1 :(得分:0)
1)您能否通过chrome / mozilla的网络选项卡查看传递给服务器的xmlhttp请求。
If so there is no error in your ajax/front end,
2)在前往路线之前,在行动路线中写一个匿名功能,看看请求是否到达路线
Route::post('/register', function(Illuminate\Http\Request, $request) {
dd($request);
});
如果启用了Auth Routes,则有可能 对于在Auth文件夹中指向RegistrationController的请求,做一个 dd($ request)在该控制器的构造函数内。因此你可以弄清楚请求是否会在那里。
3)尝试重新生成APP密钥(如果没有任何作用,这只是一个尝试)
4)尝试编写一个新的发布路由并在ajax中调用该路由以将数据发布到服务器,如果这样可行,您编写的旧路由可能会被其他路由覆盖。
按上述顺序尝试,你会在某个地方发现错误。
答案 2 :(得分:0)
我认为您需要更改代码,如:
jQuery(function($) {
$('#registerForm').submit(function(e){
e.preventDefault();
$.ajax({
url: $form.attr('action'),
data: $(this).serialize(),
dataType: 'json',
success: function(data){
},
error: function(data){
}
});
});
});