Javascript 如何检测所有http GET失败?

Javascript 如何检测所有http GET失败?,javascript,angularjs,Javascript,Angularjs,在我的应用程序中,我有一个通过HTTP协议获取数据的网格。目前,我可以检测到errorCallbacks-如下所示: myDataPromise.then(function () { //do stuff }, function errorCallback(response) { if (response.statusText === "Not Found") { //do stuff }else if(response.statu

在我的应用程序中,我有一个通过HTTP协议获取数据的网格。目前,我可以检测到
errorCallback
s-如下所示:

myDataPromise.then(function () {
    //do stuff
}, function errorCallback(response) {
        if (response.statusText === "Not Found") {
            //do stuff
        }else if(response.statusText === "Internal Server Error"){
            //do stuff
        }
但是,对于SSL错误,chrome会回击“ERR::CONNECTION-rejected”,我无法通过读取字符串来了解这一点,因为我可以使用404等。我真正想要的是显示一个简单的图像/文本,说明在检索数据时无论数据是什么,都出现了错误。因此,如果http GET完全失败,用户就知道了。在我看来,这似乎是一个相当典型的规范,但我在网上找不到太多关于它的信息。

您必须创建一个

拦截器截获所有$http流量。即使在加载模板时。

您也必须创建一个


拦截器截获所有$http流量。即使在加载模板时。

u可以使用拦截器检查每个http请求:)u可以使用拦截器检查每个http请求:)这将如何调用?我很难看出这与我的apply button函数(它在服务中执行“GET”函数,并返回一个或一个承诺数组)如何匹配。这有意义吗?我在哪里调用这些函数?您只需将这个拦截器添加到您的应用程序中。每个$http请求和响应都将通过此拦截器。如果收到响应错误,拦截器将执行“responseError”函数。你可以通过发出一个事件来处理它,这样你就可以在其他地方处理它。是的,它工作了,哇,这是一个惊人的功能!谢谢你的帮助!这叫什么?我很难看出这与我的apply button函数(它在服务中执行“GET”函数,并返回一个或一个承诺数组)如何匹配。这有意义吗?我在哪里调用这些函数?您只需将这个拦截器添加到您的应用程序中。每个$http请求和响应都将通过此拦截器。如果收到响应错误,拦截器将执行“responseError”函数。你可以通过发出一个事件来处理它,这样你就可以在其他地方处理它。是的,它工作了,哇,这是一个惊人的功能!谢谢你的帮助!
 // register the interceptor as a service
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
  return {
    // optional method
    'request': function(config) {
      // do something on success
      return config;
    },

    // optional method
   'requestError': function(rejection) {
      // do something on error
      if (canRecover(rejection)) {
        return responseOrNewPromise
      }
      return $q.reject(rejection);
    },



    // optional method
    'response': function(response) {
      // do something on success
      return response;
    },

    // optional method
   'responseError': function(rejection) {
      // do something on error
      if (canRecover(rejection)) {
        return responseOrNewPromise
      }
      return $q.reject(rejection);
    }
  };
});

$httpProvider.interceptors.push('myHttpInterceptor');


// alternatively, register the interceptor via an anonymous factory
$httpProvider.interceptors.push(function($q, dependency1, dependency2) {
  return {
   'request': function(config) {
       // same as above
    },

    'response': function(response) {
       // same as above
    }
  };
});