【问题标题】:500 jquery.min.js:4 (internal server error) laravel ajax500 jquery.min.js:4(内部服务器错误)laravel ajax
【发布时间】:2017-07-09 13:00:51
【问题描述】:

我是 ajax 新手,我尝试过 this 教程,但我得到 500 jquery.min.js:4(内部服务器错误),我不知道如何解决这个问题,这是代码:

查看:

  <div class="secure">Secure Login form</div>
  {!! Form::open(array('url'=>'account/login','method'=>'POST', 'id'=>'myform')) !!}
  <div class="control-group">
    <div class="controls">
       {!! Form::text('email','',array('id'=>'','class'=>'form-control span6','placeholder' => 'Email')) !!}
    </div>
  </div>
  <div class="control-group">
    <div class="controls">
    {!! Form::password('password',array('class'=>'form-control span6', 'placeholder' => 'Please Enter your Password')) !!}
    </div>
  </div>
  {!! Form::button('Login', array('class'=>'send-btn')) !!}
  {!! Form::close() !!}

jquery:

  <script type="text/javascript">
    $(document).ready(function(){
     $('.send-btn').click(function(){
      $.ajax({
       url: 'login',
       type: "post",
       cache: false,
       data: {'email':$('input[name=email]').val(), '_token': 
       $('input[name=_token]').val()},
       success: function(data){
       alert(data);
      }
     });
    });
   });
  </script>

控制器:

  public function login() {
  // Getting all post data
  if(Request::ajax()) {
    $data = Input::all();
    print_r($data);die;
  }
}

路线:

Route::get('account/login', function() {
  return View::make('login');
});
Route::post('account/login', 'AccountController@login');

【问题讨论】:

  • 当您在您的console 中查看您的Network Tab 并查看您的ajax url(例如account/login)时,您看到您给定回复的preview了吗?
  • 你使用哪个版本的 laravel?
  • 尝试在{!! Form::close() !!}之前添加{!! Form::token() !!}

标签: jquery ajax laravel


【解决方案1】:

我相信您收到 500 错误代码是因为您没有通过 ajax 请求发送任何 csrf 令牌,请在您的 javascript 中尝试此操作

$('.send-btn').click(function(){

    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }   
    });


    $.ajax({
        url: 'login',
        type: "post",
        cache: false,
        data: {'email':$('input[name=email]').val(), '_token': 
        $('input[name=_token]').val()},
        success: function(data){
            alert(data);
        }
    });

});

如果这不起作用,您应该打开您的控制台->网络->单击您的请求并给我们响应预览,以便我们为您提供帮助

【讨论】:

    猜你喜欢
    • 2018-05-03
    • 2016-04-08
    • 2016-02-12
    • 2017-04-12
    • 2020-02-12
    • 2018-04-16
    • 2016-03-24
    • 1970-01-01
    • 2019-05-12
    相关资源
    最近更新 更多