未捕获的 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">« 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