Laravel通过ajax注册

时间:2017-05-13 07:39:26

标签: javascript ajax laravel

我试图通过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>&nbsp;</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){

        }
    });
});

3 个答案:

答案 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){

         }
      });
    });
});