Opencart 3.0.3.0版本点击刷新按钮后验证码图片无法加载问题
问题根源
你在拼接验证码刷新路径时多写了1个多余的斜杠,导致Opencart路由参数route=tool/my_captcha被错误修改为route=tool/my_captcha/,后端无法匹配到对应的验证码生成方法,因此图片加载失败。
修正方案
把refreshCaptcha方法里的路径斜杠去掉,同时建议给时间戳加明确的参数名,避免部分服务器解析异常,修改后完整代码如下:
<img src="index.php?route=tool/my_captcha" alt="" id='captchaimg'/> <br> <a id="capreload" href="javascript: refreshCaptcha();">Reload</a> <script type="text/javascript"> function refreshCaptcha(){ const d = new Date(); // 修正路径,去掉多余斜杠,加时间戳参数避免缓存 $('#captchaimg').attr('src', 'index.php?route=tool/my_captcha&t='+d.getTime()); // 原生JS写法同理修正 // document.getElementById("captchaimg").src = 'index.php?route=tool/my_captcha&t='+d.getTime(); } </script>
修改后点击Reload按钮即可正常刷新验证码,时间戳参数会强制浏览器不从缓存加载图片,保证每次请求都是新的验证码。
内容的提问来源于stack exchange,提问作者Dr M L M J
相关产品推荐
相关产品推荐

