我试着给一个表单添加验证码,一切正常。当我把表单添加到iFrame时,我开始收到验证码的验证错误。我使用的是Laravel 7.3
和mews/captcha 3.2
我得到错误是:
照明\确认\确认异常:当前页面位于/var/www/html/vendor/laravel/framework/src/Illuminate/validation/验证程序中。
HTML代码:
<span id="captchaspan"> {!! captcha_img('flat') !!}</span>
<button type="button" class="btn btn-success" id="refresh"><i class="fa fa-refresh" ></i></button>
代码:
<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中时才会出现问题。
3条答案
按热度按时间camsedfj1#
我不知道这是否可以帮助,但我有一个问题,这个库,经过几个小时的尝试找出问题并分析它,与库本身的问题,没有很好地测试,无论如何,我的问题是在config/mews php验证码文件有一个属性,被称为数学,我只是禁用它,和检查工作完美,现在,我希望这可以帮助任何人在未来:)如果验证码规则不工作试试这个:
沿着一个名为captchaRule()的自定义规则,该规则可以简单地通过以下测试:
x6492ojm2#
为验证你应该使用captcha_check()函数在你的控制器.传递这提交captcha字符串到这函数并且得到一个布尔响应为验证.象这样:
t5zmwmid3#
用这个:
https://github.com/hamid-hpd/captcha.git