在网址中包含已编码部分的某些网页上,例如%FC
而不是ü
,我在控制台中出现Uncaught URIError: URI malformed
错误,因此验证码无效。
我们的项目是iso-8859-1
编码的,我无法改变这一点。
您知道可以解决此问题的解决方法吗?我使用的是reCAPTCHA 2。
答案 0 :(得分:1)
我现在的解决方案是,在recaptcha/api.js
执行之前,我抓住window.location.pathname
,摆脱有问题的元素,并在网址中用history.pushState
进行交换。如果我只是更改window.location.pathname
页面重定向将是后果。
这是我的示例代码:
var oldPath = window.location.pathname;
var newPath = decodeURIComponent( unescape( unescape(oldPath)));
var stateObj = {};
history.pushState(stateObj, "", newPath);