2014-10-03 149 views
0

我遇到了一個問題,我想與您分享,包括文檔和找到正確的解釋。問題:reCaptcha停止顯示(並因此工作),但僅限於ChromereCaptcha,.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 /信息。

回答

0

我的幸運,鬆解

後,我得到了沮喪的問題,我做了一件小事都和愚蠢:我硬編碼<script>標籤指的是http://www.google.com/recaptcha/api/challenge?k=MY_PUBLIC_KEY我調試過程中發現的。直接在頁面中。它按預期工作:它在我放置<script>標籤的確切位置顯示reCaptcha控件。但有趣的是:在我刪除硬編碼的<script>之後,整個頁面工作正常,並且也在其他機器上!

這就是所有人,我希望它可以幫助別人。而且,如果你能向我解釋實際發生的事情,那麼不用客氣。