Javascript 将ASP.NET MVC web应用程序从http转换为https

Javascript 将ASP.NET MVC web应用程序从http转换为https,javascript,c#,jquery,asp.net-mvc,Javascript,C#,Jquery,Asp.net Mvc,我有ASP.NET MVC web应用程序在http中,我想将其转换为https。我将代码从http更改为https,但在部署到internet后,我出现了一些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

我有ASP.NET MVC web应用程序在http中,我想将其转换为https。我将代码从http更改为https,但在部署到internet后,我出现了一些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
加载所有JavaScript内容(如果它们是外部链接)

参考:

https://code.jquery.com/jquery-2.1.3.min.js
而不是:

http://code.jquery.com/jquery-2.1.3.min.js

答案就这么简单

当你有一个
https
站点时,你应该通过
https

参考:

https://code.jquery.com/jquery-2.1.3.min.js
而不是:

http://code.jquery.com/jquery-2.1.3.min.js

答案就这么简单

当启用
HTTPS
时,您的所有资产也必须通过
HTTPS
进行请求,否则您会收到混合的内容警告,因为安全和非安全元素都在一个应完全加密的页面上提供。切换到HTTPS:

<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>

您还可以使用协议相关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>

使用协议相关语法,当从非安全页面请求时,资源将加载到
HTTP
,当从安全页面请求时,资源将加载到
HTTPS

这样做的缺点是,在不安全的页面上使用协议相关方案将以不安全的方式检索跨源资产。这意味着您可能会错过
HTTPS
在从CDN请求(例如)资源时提供的好处,例如通过*接收资产。当您使用完整的
HTTPS
时,这不是一个实际的问题,因此请自行决定使用它


*
HTTP/2
不需要使用加密(例如TLS),但一些实现已声明,它们仅在通过加密连接使用时支持
HTTP/2
,目前没有浏览器支持
HTTP/2
未加密。()

当启用
HTTPS
时,您的所有资产也必须通过
HTTPS
进行请求,否则您会收到混合内容警告,因为安全和非安全元素都出现在一个应完全加密的页面上。切换到HTTPS:

<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>

您还可以使用协议相关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>

使用协议相关语法,当从非安全页面请求时,资源将加载到
HTTP
,当从安全页面请求时,资源将加载到
HTTPS

这样做的缺点是,在不安全的页面上使用协议相关方案将以不安全的方式检索跨源资产。这意味着您可能会错过
HTTPS
在从CDN请求(例如)资源时提供的好处,例如通过*接收资产。当您使用完整的
HTTPS
时,这不是一个实际的问题,因此请自行决定使用它


*
HTTP/2
不需要使用加密(例如TLS),但一些实现已声明,它们仅在通过加密连接使用时支持
HTTP/2
,目前没有浏览器支持
HTTP/2
未加密。()

解决方案是在脚本标记中引用此依赖项的https版本,而不是http版本-例如,只引用https版本而不是http版本-解决方案是在脚本标记中引用此依赖项的https版本,而不是http版本-例如,只引用https版本http版本-如果您在浏览器上访问它,它将正常加载。。这意味着它正在加载JavaScript。如果您在浏览器上访问它,它将正常加载。。这意味着它正在加载JavaScript。