我正在为域名 ( http://sälja.io ) 中带有瑞典字符 ä 的站点设置 API key ,但它没有初始化 recaptcha。
然后为等效的 url 尝试一个 api key http://xn--slja-loa.io从 http://xn--slja-loa.io 到达网站时有效但不是http://sälja.io .
然后我找到了应该适用于所有域的安全 token 。它在所有域 上初始化了 recaptchas,并且还在所有测试的域上工作,除了带有 ä 的域。 https://developers.google.com/recaptcha/docs/secure_token
有什么方法可以让它在域名中也使用 ä 吗?
编辑
因为 http://xn--slja-loa.io 的 api key 从 http://sälja.io 访问网站时正在 android 上工作,这可能是浏览器解释域的方式。例如。 firefox 解释http://sälja.io作为域 http://sälja.io并且无法从不允许在域名中使用 ä 的谷歌服务器获得响应。 Android 解释 http://sälja.io作为http://xn--slja-loa.io并且会得到响应,因为它不包含 ä。对此有什么想法吗?有没有办法强制浏览器解释 http://sälja.io作为http://xn--slja-loa.io ?
编辑2
代码示例可以在 sälja.io/test、178.62.187.163/test 和 xn--slja-loa.io/test 上找到
编辑3
截至今天(2015 年 11 月 25 日),似乎无法在域名中使用带有 ä 等特殊字符的 recaptcha。由于 aishwat singh 在赏金时间内为得出此结论提供了最多帮助,因此他将获得奖励,但是当可以为该问题提供解决方案时,答案将被接受。
最佳答案
我刚才试过了,我能够为 example-ä.se
生成 key 6Ld8VRETAAAAALRXFNxmjEeVzbg2y5vdWv7THwJz
将很快发布一个完整的工作示例
编辑 1
这是 git repo用于在 heroku 上运行的代码和相同的代码
好的,这不是一个完整的修复,因为我使用 herokuapp.com 作为域,所以 example-ä.herokuapp.com 成为一个子域并且可以工作
(然而,当我早些时候尝试时,它也为 example-ä.se
创建了一个 key ,但是在验证码的加载页面上它给出了 invalid domain
,发现这是原始的问题,我认为您无法为该域生成 key )
将尝试完全修复
编辑 2
顺便说一句,你也可以指定你的域 ip,检查这个 discussion
对我来说,heroku 免费账户不提供域的 ip,所以我很难测试它
我也在读这个thread
弄清楚如果我将域列表指定为 com
它会接受。在您的情况下,只需将 se
指定为域,它应该可以工作,谷歌不会检查确切的 url,它只会检查域
希望它有所帮助,也会研究stoken
方法
关于javascript - 使 google Recaptcha 使用域名中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33723870/