Javascript 如何检测用户在$http请求后处于脱机状态

Javascript 如何检测用户在$http请求后处于脱机状态,javascript,angularjs,Javascript,Angularjs,我想在AngularJs中的$http服务请求失败后测试网络连接(在线/离线)。 在错误处理程序中查找所有可用的响应参数时,我看不到任何可以帮助我的东西 谢谢你的帮助, 奥利维尔 请求代码: $http({ method: method, url: url, data: data, headers: headers }) .success(function (result) { deferred.resolve(result); }) .error(function (dat

我想在AngularJs中的$http服务请求失败后测试网络连接(在线/离线)。 在错误处理程序中查找所有可用的响应参数时,我看不到任何可以帮助我的东西

谢谢你的帮助, 奥利维尔

请求代码:

$http({ method: method, url: url, data: data, headers: headers })
  .success(function (result) {
    deferred.resolve(result);
  })
  .error(function (data, status, headers, config, statusText) {
    console.log(data);
    console.log(status);
    console.log(headers);
    console.log(config);
    console.log(statusText);
    deferred.reject();
  });
控制台中的结果:

GET http://192.168.0.12:3000/test net::ERR_INTERNET_DISCONNECTED ionic.bundle.js:16185
 backEnd.js:25
0 backEnd.js:26
function (name) {
    if (!headersObj) headersObj =  parseHeaders(headers);

    if (name) {
      return headersObj[lowercase(name)] || null;
    }

    return headersObj;
  } backEnd.js:27
Object {method: "GET", transformRequest: Array[1], transformResponse: Array[1], url: "http://192.168.0.12:3000/test", data: null…} backEnd.js:28
undefined backEnd.js:29

如果您只想检测您是否在线,您可以使用:

if (navigator.onLine) {
  alert('online')
} else {
  alert('offline');
}
有关此项和其他在线/离线检查技术,请查看:

尝试使用DOM
在线
离线
事件-很好,谢谢。我想我可以从响应中获得一些信息,而不是查询导航器。事实上,从我离开网络到navigator.onLine从true切换到false之间有一个延迟。在这两者之间,navigator.onLine保持为true,我在控制台中得到一个“net::ERR_ADDRESS_UNREACHABLE”。并不是每个浏览器都这样做。e、 g.mozilla
navigator.onLine
在您离线时仍然是正确的。参考: