Asp.net mvc 3 C#MVC3:通过HTTPS加载的网站无法加载recaptcha安全代码。Chrome调试器给出了一个;混合内容错误“;

Asp.net mvc 3 C#MVC3:通过HTTPS加载的网站无法加载recaptcha安全代码。Chrome调试器给出了一个;混合内容错误“;,asp.net-mvc-3,recaptcha,Asp.net Mvc 3,Recaptcha,我有一个C#MVC应用程序,在特定视图中使用recaptcha安全代码。 在我看来,我有以下代码: <script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script> ... @Html.Raw(Html.GenerateCaptcha("captcha", "white")) @Html.ValidationMessage("ca

我有一个C#MVC应用程序,在特定视图中使用recaptcha安全代码。 在我看来,我有以下代码:

<script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
...
@Html.Raw(Html.GenerateCaptcha("captcha", "white"))
@Html.ValidationMessage("captcha")
如果我检查加载页面的源代码,recaptcha的razor控件将生成以下脚本标记:

<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k=mykey">

src属性是http url而不是https url

如果有人知道我如何克服这个错误,我将不胜感激。 谢谢
Kapetanios

好的,我在这里再次发布我自己问题的答案

事实证明:

@Html.Raw(Html.GenerateCaptcha("captcha", "white"))
@Html.ValidationMessage("captcha")
正在呈现以下内容:

<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k=mykey"></script>

脚本标记的src属性包含http而不是https 为了解决这个问题,我将@html.raw&@html.validate替换为:

<script type="text/javascript" src="https://www.google.com/recaptcha/api/challenge?k=mekey"></script>
            <noscript>
                <iframe src="https://www.google.com/recaptcha/api/noscript?k=mykey" height="300" width="500" frameborder="0"></iframe><br>
                <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea><input name="recaptcha_response_field" value="manual_challenge" type="hidden" />
            </noscript>


执行此操作将阻止chrome调试器获取错误

<script type="text/javascript" src="https://www.google.com/recaptcha/api/challenge?k=mekey"></script>
            <noscript>
                <iframe src="https://www.google.com/recaptcha/api/noscript?k=mykey" height="300" width="500" frameborder="0"></iframe><br>
                <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea><input name="recaptcha_response_field" value="manual_challenge" type="hidden" />
            </noscript>