Asp.net mvc 3 C#MVC3:通过HTTPS加载的网站无法加载recaptcha安全代码。Chrome调试器给出了一个;混合内容错误“;
我有一个C#MVC应用程序,在特定视图中使用recaptcha安全代码。 在我看来,我有以下代码: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
<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>