reCaptcha,.NET,Chrome:无法正常工作
问题描述:
我遇到了一个问题,我想与您分享,包括文档和找到正确的解释。问题:reCaptcha停止显示(并因此工作),但仅限于Chrome。reCaptcha,.NET,Chrome:无法正常工作
环境
这是一个网站建立与.NET 3.5的WebForms和官方验证码库Recaptcha.web.dll。
实施
<%@ Register Namespace="Recaptcha.Web.UI.Controls" Assembly="Recaptcha.Web" TagPrefix="cc1" %>
<cc1:Recaptcha id="RecaptchaControl" runat="server" />
然后,在提交,我检查使用的CustomValidator控制的控制。
输出
甲验证码框被示出在每一个浏览器BUT Chrome,在这种空白空间留下。如果我尝试提交表单,则会显示.NET服务器错误,并说:
Recaptcha质询字段不能为空。
furher analisys
在调试深下去,我得到了怎样的dll实际上是工作:它注入一个<script>
标签指http://www.google.com/recaptcha/api/challenge?k=MY_PUBLIC_KEY
。因此,似乎核心问题是Chrome和xss或脚本注入之间的东西。搜索谷歌关于它,我找不到任何东西。更重要的是,Chrome控制台不显示任何错误/ wanring /信息。
答
我的幸运,松解
后,我得到了沮丧的问题,我做了一件小事都和愚蠢:我硬编码<script>
标签指的是http://www.google.com/recaptcha/api/challenge?k=MY_PUBLIC_KEY
我调试过程中发现的。直接在页面中。它按预期工作:它在我放置<script>
标签的确切位置显示reCaptcha控件。但有趣的是:在我删除硬编码的<script>
之后,整个页面工作正常,并且也在其他机器上!
这就是所有人,我希望它可以帮助别人。而且,如果你能向我解释实际发生的事情,那么不用客气。