Jquery 未捕获范围错误:AJAX调用Laravel 5.4中超出了最大调用堆栈大小

Jquery 未捕获范围错误:AJAX调用Laravel 5.4中超出了最大调用堆栈大小,jquery,ajax,laravel-5,Jquery,Ajax,Laravel 5,我正在尝试以忘记密码的形式使用AJAX。在此之前,我只是尝试在控制台中查看一条消息,但我得到的最大cal堆栈大小超过了错误。我搜索了这么多的解决方案,我知道这是由于对函数的迭代调用没有限制条件,但无法与我的代码相关联 表单的HTML: <form class="form-vertical" id="recoverform" role="form" method="POST"> <input type="hidden" id="token" na

我正在尝试以忘记密码的形式使用AJAX。在此之前,我只是尝试在控制台中查看一条消息,但我得到的最大cal堆栈大小超过了错误。我搜索了这么多的解决方案,我知道这是由于对函数的迭代调用没有限制条件,但无法与我的代码相关联

表单的HTML:

<form class="form-vertical" id="recoverform" role="form" method="POST">
                <input type="hidden" id="token" name="_token" value="{{ csrf_field() }}">

                    <div class="controls">
                        <div class="main_input_box">
                            <span class="add-on bg_lo"><i class="icon-envelope"></i></span><input id="recover_email" type="email" name="email" placeholder="E-mail address" value="{{ old('email') }}" required />
                        </div>
                    </div>

                <div class="form-actions">
                    <span class="pull-left"><a href="#" class="flip-link btn btn-success" id="to-login">&laquo; Back to login</a></span>

                    <span class="pull-right"> <button type="submit" class="btn btn-info">Recover
                    </button></span>
                </div>
            </form>
<script>
            jQuery( document ).ready( function( $ ) {
                $( '#recoverform' ).on( 'submit', function(e) {
                    e.preventDefault();
                    //var email = $('#recover_email').val();
                    //var host = "{{URL::to('/')}}";
                    $.ajax({
                        type: "POST",
                        url: "{{URL::to('/ajax')}}",
                        data: { '_token': token },
                        dataType: 'json',
                        success: function (response) {
                        console.log('done');
                        }
                    });

                });
            });
        </script>
Route::POST('ajax', array('uses' => 'HomeController@ajaxTest'))->name('ajax');
public function ajaxTest(){
        $response = array(
            'status' => 'success',
            'msg' => 'Setting created successfully',
        );
        return Response::json($response);  // <<<<<<<<< see this line
    }
HomeController中的方法:

<form class="form-vertical" id="recoverform" role="form" method="POST">
                <input type="hidden" id="token" name="_token" value="{{ csrf_field() }}">

                    <div class="controls">
                        <div class="main_input_box">
                            <span class="add-on bg_lo"><i class="icon-envelope"></i></span><input id="recover_email" type="email" name="email" placeholder="E-mail address" value="{{ old('email') }}" required />
                        </div>
                    </div>

                <div class="form-actions">
                    <span class="pull-left"><a href="#" class="flip-link btn btn-success" id="to-login">&laquo; Back to login</a></span>

                    <span class="pull-right"> <button type="submit" class="btn btn-info">Recover
                    </button></span>
                </div>
            </form>
<script>
            jQuery( document ).ready( function( $ ) {
                $( '#recoverform' ).on( 'submit', function(e) {
                    e.preventDefault();
                    //var email = $('#recover_email').val();
                    //var host = "{{URL::to('/')}}";
                    $.ajax({
                        type: "POST",
                        url: "{{URL::to('/ajax')}}",
                        data: { '_token': token },
                        dataType: 'json',
                        success: function (response) {
                        console.log('done');
                        }
                    });

                });
            });
        </script>
Route::POST('ajax', array('uses' => 'HomeController@ajaxTest'))->name('ajax');
public function ajaxTest(){
        $response = array(
            'status' => 'success',
            'msg' => 'Setting created successfully',
        );
        return Response::json($response);  // <<<<<<<<< see this line
    }
公共函数ajaxTest(){
$response=array(
“状态”=>“成功”,
“msg'=>“已成功创建设置”,
);

返回响应::json($Response)//我也遇到了类似的问题,但后来我发现了。这个问题可能是由递归函数引起的。在我的例子中,没有任何递归函数。我只是修复了我的csrf_标记,如果您的问题仍然完好,那么在Chrome中,转到inspector tools中的network选项卡,切换到preview以查看php错误消息。

我认为您没有定义下一行中使用的“token”参数:

数据:{u令牌:令牌}


修复此问题并重试。

是否尝试发送状态代码为return response()->json(['data'=>$response],200)的响应;