开发者问题收集

未捕获的 RangeError:AJAX 调用中超出最大调用堆栈大小 Laravel 5.4

2017-05-07
3286

我尝试在忘记密码表单中使用 AJAX。在此之前,我尝试在控制台中查看一条消息,但我收到了“超出最大校准堆栈大小”错误。我搜索了很多解决方案,我知道这是由于对函数的迭代调用没有限制条件造成的,但与我的代码无关。

在此处输入图片描述

表单的 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>

Javascript:

<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');

HomeController 中的方法:

public function ajaxTest(){
        $response = array(
            'status' => 'success',
            'msg' => 'Setting created successfully',
        );
        return Response::json($response);  // <<<<<<<<< see this line
    }
2个回答

我也遇到过类似的问题,但后来我弄明白了。这个问题可能是由于递归函数引起的。就我而言,没有任何递归函数。我刚刚修复了我的 csrf_token,如果您的问题仍然存在,请在 Chrome 中转到检查器工具中的网络选项卡,然后切换到预览以查看 php 错误消息。

Darsh Mathur
2017-08-08

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

数据:{'_token':token }

修复该问题并重试。

rakib29024
2021-02-28