无法加载资源:net :: ERR_INSECURE_RESPONSE

有没有办法欺骗服务器,所以我没有得到这个错误:

内容被阻止,因为它没有被有效的安全证书签名。

我拉一个HTML网站的iframe到另一个网站,但我不断得到这个问题的标题中的控制台(铬)错误,并在Internet Explorer中说:

内容被阻止,因为它没有被有效的安全证书签名。

您的资源可能使用通过HTTPS协议的自签名SSL证书。 铬,所以谷歌浏览器默认这种资源被认为是不安全的。

你可以这样绕过这个:

  • 假设您的框架的URL是https://www.domain.com ,请在Chrome中打开一个新标签并转到https://www.domain.com
  • Chrome会要求您接受SSL证书。 接受。
  • 然后,如果你用你的框架重新加载你的页面,你可以看到现在它的工作

您可以猜到的问题是,您的网站的每个访问者都必须执行此任务来访问您的框架。

您可以注意到,chrome会阻止您的每个导航会话的URL,而chrome可以永久记住您信任该域名。

如果你的框架可以通过HTTP而不是HTTPS访问,我build议你使用它,所以这个问题将被解决。

有时Google Chrome会抛出这个错误,即使它不应该。 当Chrome有新版本时,我经历过它,并且需要重新启动。 重新启动相同的页面后,没有任何错误。 控制台中的错误是:

 net::ERR_INSECURE_RESPONSE 

我仍然遇到了上述问题在华硕T100 Windows 10testing设备上(最新)的边缘和Chrome浏览器。

解决scheme是在设备的date/时间设置 ; 不知何故date设置不正确(过去的date)。 通过设置正确的date(并重新启动浏览器)恢复这个解决了我的问题。 我希望我能省下一个头痛的人来debugging这个问题。

打开你的控制台,并点击里面的URL。 它会带你到API页面,然后在页面接受SSL证书,回到你的应用程序页面并重新加载。 请记住,SSL证书应该已经为您的开发环境发行。

如果您正在开发,并且正在使用Windows计算机进行开发,则只需将localhost添加为受信任的站点即可 。

是的,每个DarrylGriffiths的评论,尽pipe它可能看起来像你正在添加一个Internet Explorer设置…

我相信这些是Windows而不是IE设置。 虽然MS往往认为他们只是IE浏览器(因此旁边的“启用保护模式”,它requries重新启动IE的警报)…

为此错误提供另一个可能的解决scheme

如果您有一个前端应用程序将API调用到后端,请确保您引用已颁发证书的域名。

例如

 https://example.com/api/etc 

并不是

 https://123.4.5.6/api/etc 

就我而言,我使用证书对安全的服务器进行API调用,但使用IP而不是域名。 这抛出了一个Failed to load resource: net::ERR_INSECURE_RESPONSE

试试看这个代码,并报告一个可能的net::ERR_INSECURE_RESPONSE

我也遇到了这个问题,使用自签名证书,我select不保存到Chrome设置。 在访问https域并接受证书后,ajax调用工作正常。 但是,一旦接受超时或首次被接受, jQuery.ajax()调用就会失败: timeout参数似乎没有帮助,并且error()函数也不会被调用。

因此,我的代码永远不会收到success()error()调用,因此挂起。 我相信这是jquery处理这个错误的一个错误。 我的解决scheme是在指定的超时后强制error()调用。

这段代码假设jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional})forms的jquery ajax调用。

注意:您可能需要更改setTimeout的函数,以便与UI完美集成:而不是调用alert()

 const MS_FOR_HTTPS_FAILURE = 5000; $.orig_ajax = $.ajax; $.ajax = function(params) { var complete = false; var success = params.success; var error = params.error; params.success = function() { if(!complete) { complete = true; if(success) success.apply(this,arguments); } } params.error = function() { if(!complete) { complete = true; if(error) error.apply(this,arguments); } } setTimeout(function() { if(!complete) { complete = true; alert("Please ensure your self-signed HTTPS certificate has been accepted. " + params.url); if(params.error) params.error( {}, "Connection failure", "Timed out while waiting to connect to remote resource. " + "Possibly could not authenticate HTTPS certificate." ); } }, MS_FOR_HTTPS_FAILURE); $.orig_ajax(params); } 

这个问题是因为你的https意味着SSLauthentication。 尝试本地主机。