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

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

我拉一个html网站的iframe到另一个网站,但我一直在这个问题的标题中得到控制台(chrome)错误,在ie中它说:

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


当前回答

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

其他回答

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

尝试这段代码来观察并报告一个可能的net::ERR_INSECURE_RESPONSE

我也有这个问题,使用自签名证书,我选择不保存到Chrome设置。在访问https域并接受证书之后,ajax调用可以正常工作。但是一旦接受超时或在它第一次被接受之前,jQuery.ajax()调用就会无声地失败:timeout参数似乎没有帮助,error()函数永远不会被调用。

因此,我的代码从未接收到success()或error()调用,因此挂起。我相信这是jquery处理此错误的错误。我的解决方案是在指定的超时后强制调用error()。

这段代码确实假设了jquery ajax调用的形式。Ajax ({url:必需,成功:可选,错误:可选,others_ajax_params:可选})。

注意:您可能希望在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);
}

有时谷歌Chrome浏览器会抛出这个错误,即使它不应该。 当Chrome有了新版本,需要重新启动时,我就经历过这种情况。 重新启动后,同一页面正常工作,没有任何错误。 控制台的错误是:

net::ERR_INSECURE_RESPONSE

我在华硕T100 Windows 10测试设备上(最新版)Edge和Chrome浏览器上仍然遇到了上述问题。

解决方案存在于设备的日期/时间设置中;不知怎的,日期设置不正确(过去的日期)。通过设置正确的日期(并重新启动浏览器)来恢复,为我解决了这个问题。我希望我省去了调试这个问题的麻烦。

如果您正在开发,并且正在使用Windows机器进行开发,只需将localhost添加为可信站点。

是的,根据DarrylGriffiths的评论,虽然看起来像是你在添加ie设置……

我认为这些是Windows而不是IE设置。尽管MS倾向于假设它们只是IE(因此在“启用保护模式”旁边的警报要求重新启动IE)…