【发布时间】:2022-10-08 14:55:10
【问题描述】:
我正在尝试将验证码添加到表单中,一切正常。 当我将该表单添加到 iFrame 时,我开始从验证码中收到验证错误。 我正在使用 Laravel 7.3 喵喵叫/验证码 3.2
我得到的错误:
Illuminate\Validation\ValidationException: The given data was invalid. in /var/www/html/vendor/laravel/framework/src/Illuminate/Validation/Validator.php:452
html代码:
<span id="captchaspan"> {!! captcha_img('flat') !!}</span>
<button type="button" class="btn btn-success" id="refresh"><i class="fa fa-refresh" ></i></button>
javascript代码:
<script type="text/javascript">
$('.btn-success').click(function(){
$.ajax({
type:'GET',
url:'/refresh-captcha',
datatype:'json',
success: function(data){
$(".captcha span").html(data.captcha);
}
});
});
</script>
在控制器中:
try {
request()->validate(['captcha' => 'required|captcha']);
}catch (\Exception $e){
file_put_contents('log.log', ' captcha problem '.$e,8);
return back()->with('error', 'Captcha Error');
}
刷新验证码方法
public function refreshCaptcha()
{
return response()->json(['captcha'=> captcha_img('flat')]);
}
重要的: 仅当表单嵌入 iframe 时才会出现此问题。
非常感谢提前。 格拉津
【问题讨论】: