如何处理net :: ERR_SSL_PROTOCOL_ERROR?

时间:2017-04-05 13:29:46

标签: javascript jquery

我在我的网站上加入了一个JS库

<script type="text/javascript" src="http://www.turnjs.com/lib/turn.min.js "></script> 

由网页设计公司设计,维护和托管。 我想要实现的功能似乎编码得很好 - 请参阅我的JSFiddle - 它没有错误,工作正常。但是,当将我的JSfiddle中的代码复制并粘贴到我的网站时,它根本不起作用 - 谷歌Chrome开发者控制台显示:

GET https://www.turnjs.com/lib/turn.min.js net::ERR_SSL_PROTOCOL_ERROR

但这很奇怪,因为我的Jsfiddle代码包含相同的turn.min.js并且它在那里工作,但在我的网站上却没有。

2 个答案:

答案 0 :(得分:2)

这不是一个javascript问题,它是一个ssl探测器。

您无法通过安全连接(https)提供的html页面通过不安全连接(http)获取文件。如果您要使用https(并且您应该!),那么您需要通过安全连接获取脚本。 要获取该文件,您应该使用:

<script type="text/javascript" src="https://www.turnjs.com/lib/turn.min.js "></script> 

通过相应地配置服务器,确保通过https提供文件。这是lighttpd的简单配置,而apache的配置只是enter image description here。如果您没有CA签名证书,可以使用letsencrypt(www.letsencrypt.org/getting-started/)。如果您不控制服务器,则应与该人联系。

答案 1 :(得分:0)

    无法通过HTTPS与
  1. http://www.turnjs.com/lib/turn.min.js联系。这会导致您的错误。
  2. JSfiddle通过HTTP访问因此没有问题
  3. <script type="text/javascript" src="http://www.turnjs.com/lib/turn.min.js "></script>会在任何情况下为您的网站带来问题,因为这是混合内容的一个示例,几乎所有浏览器都会阻止这种情况。
  4. 解决方案:在您的服务器上复制此文件,然后包含本地版本

    P.S。我更喜欢以这种方式将脚本包含在页面中: <script type="text/javascript" src="//www.turnjs.com/lib/turn.min.js "></script>。这允许浏览器检查连接类型本身。在你的情况下,这实际上是行不通的(见第1页)。

    p.p.s。非常好的解释:Google developers