我有 http 中的 ASP.NET MVC Web 应用程序,我想将其转换为 https。我已将代码从 http 更改为 https,但在互联网上部署后,我遇到了一些 javascript 库错误,例如:
Mixed Content: The page at 'https://MySite/' was loaded over HTTPS, but requested an insecure script 'http://code.jquery.com/jquery-2.1.3.min.js'. This request has been blocked; the content must be served over HTTPS.
解决方案是什么?
最佳答案
启用 HTTPS
后,您的所有资源也必须通过 HTTPS
请求,否则您会收到混合内容警告,因为同时提供安全和不安全的元素位于应该完全加密的页面上。切换到 HTTPS
:
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
您还可以使用协议(protocol)相关 URL,即代替:
<!-- this.. -->
<script src="http://code.jquery.com/jquery-2.1.3.min.js"></script>
<!-- ..or this -->
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
您可以使用:
<script src="//code.jquery.com/jquery-2.1.3.min.js"></script>
使用协议(protocol)相关语法,当从非安全页面请求时,资源将以 HTTP
加载,而当从安全页面请求时,资源将以 HTTPS
加载。
这样做的缺点是,在非安全页面上使用协议(protocol)相关方案将以非安全方式检索跨源 Assets 。这意味着,在从 CDN 请求(例如)资源时,您可能会错过 HTTPS
提供的优势,例如通过 HTTP/2
接收资源。 *。当您使用完整的 HTTPS
时,这并不是一个实际问题,因此请自行决定使用它。
*HTTP/2
不需要使用加密(例如 TLS),但某些实现已声明它们仅在以下情况下支持 HTTP/2
:它通过加密连接使用,目前没有浏览器支持未加密的 HTTP/2
。 (HTTP/2 FAQ)
关于javascript - 将 ASP.NET MVC Web 应用程序从 http 转换为 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51300951/