Answers:
您的资源可能使用基于HTTPS协议的自签名SSL证书。Chromium,因此Google Chrome在默认情况下会阻止这种不安全的资源。
您可以通过这种方式绕开:
https://www.domain.com
,请在chrome中打开一个新标签,然后转到https://www.domain.com
。您可能猜到的问题是,网站的每个访问者都必须执行此任务才能访问您的框架。
您会注意到chrome会在每次导航会话中阻止您的URL,而chrome会永远记住您信任此域。
如果您的框架可以通过HTTP而不是HTTPS进行访问,则建议您使用它,这样就可以解决此问题。
https://domain.com
并接受SSL证书。
有时Google Chrome会抛出此错误,即使不是这样。Chrome有了新版本时,我经历了它,因此需要重新启动它。重新启动后,同一页面正常工作,没有任何错误。控制台中的错误是:
net::ERR_INSECURE_RESPONSE
chrome://net-internals
?
我仍然在(最新的)Edge和Chrome浏览器的Asus T100 Windows 10测试设备上遇到了上述问题。
解决方法是在设备的日期/时间设置中;日期以某种方式未正确设置(过去的日期)。通过设置正确的日期(并重新启动浏览器)来恢复此设置,对我来说解决了这个问题。我希望我省去了调试该问题的麻烦。
打开控制台并点击其中的URL。它将带您到API页面,然后在该页面接受SSL证书,然后返回到您的应用页面并重新加载。请记住,之前应该已经为您的开发环境颁发了SSL证书。
如果您正在开发,并且正在使用Windows计算机进行开发,只需将添加localhost
为“受信任的站点”即可。
是的,根据DarrylGriffiths的评论,尽管看起来您正在添加Internet Explorer设置...
我相信这些是Windows而不是IE设置。虽然MS倾向于认为它们只是IE(因此“ Enable Protected Mode”旁边的警报要求重新启动IE)...
为该错误提供另一种可能的解决方案。
如果您有一个前端应用程序,该应用程序对后端进行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
使用自签名证书时,我也遇到了这个问题,我选择不保存到Chrome设置中。访问https域并接受证书后,ajax调用可以正常工作。但是,一旦接受超时或在第一次接受之前,jQuery.ajax()
调用将以静默方式失败:该timeout
参数似乎无济于事,并且error()
永远不会调用该函数。
因此,我的代码从未收到a success()
或error()
调用,因此挂起。我相信这是jquery处理此错误中的错误。我的解决方案是error()
在指定的超时后强制调用。
这段代码确实假定了表单的jquery ajax调用jQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional})
。
注意:您可能需要更改内的功能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);
}