如何处理ERR_INSECURE_RESPONSE?

时间:2015-02-18 22:33:33

标签: angularjs

我的AngularJS应用使用$http.get() https 网址。如果服务器使用的是自签名证书,Chrome将拒绝该请求并将错误 ERR_INSECURE_RESPONSE 记录到控制台。

我想捕获此特定错误并提示用户使用有效证书配置其服务器。

我已尝试$http.error$httpProvider.interceptors获取有关此错误的信息,但错误参数中没有相关信息。

我了解Chrome拒绝请求而不是服务器,但使用Angular,无论如何都要捕获Chrome已拒绝错误 ERR_INSECURE_RESPONSE 的请求?

2 个答案:

答案 0 :(得分:0)

我在离子项目中遇到了同样的问题,但是没有办法克服这个问题客户端,这是安全问题,转到SSL配置的服务器设置,将 DHPARAMS 更改为 2048位密钥,解决了我的问题,

注意:我的服务器是亚马逊s3

答案 1 :(得分:0)

我一直在努力解决这个问题,试图找出如何在$ http错误回调中获得一种错误并向用户显示有用的消息。但是,似乎无法确定此特定错误,确定它的唯一方法是检查response.status是否等于-1(如果请求因某种原因被中断,则会发生这种情况) - 但在其他情况下它也可能是-1,比如缺少互联网连接。所以最终我编辑了错误消息,显示在状态-1,以解释用户可能出错的地方。

另外,在我的情况下,用户必须输入服务器地址,所以另外我添加了检查它是否不是IP地址(IP地址不能有有效的SSL证书,只有自签名,这会导致上述错误):

if (server_url.match(/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}/)) {
    // Show error message like "only domain names are allowed"
}

希望有所帮助。