Jquery 未捕获范围错误:AJAX调用Laravel 5.4中超出了最大调用堆栈大小
我正在尝试以忘记密码的形式使用AJAX。在此之前,我只是尝试在控制台中查看一条消息,但我得到的最大cal堆栈大小超过了错误。我搜索了这么多的解决方案,我知道这是由于对函数的迭代调用没有限制条件,但无法与我的代码相关联 表单的HTML: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
<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>
<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">« 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)的响应;