【问题标题】:Handle offline server in angular 5 service post request在 Angular 5 服务发布请求中处理离线服务器
【发布时间】:2018-12-23 17:11:53
【问题描述】:

当我的节点后端消失时,我想处理它。我正在使用带有app.use(cors()) 的 MEAN-Stack 和 CORS-Middleware。

所以我尝试在我的请求中使用rxjs timeout ->

return this.http.post('http://192.168.45.20:3000/bookings/', booking, {headers: headers})
    .timeout(3000)
    .map(res => res.json());
}

当我的服务器在线时,一切正常,但是当请求被发送并且我的服务器离线时,我得到一个错误

跨域请求被阻止:同源策略不允许读取 https://192.168.45.20:3000/bookings 的远程资源。 (原因: CORS 攻击失败)。

那么我该如何处理我的 Angular 5 服务中的服务器离线状态呢?

【问题讨论】:

  • 你试过rxjs重试操作符吗?
  • 在 Chrome 中出现 CORS 错误后,在网站刷新之前无法再请求,所以我认为 retry 不会有任何效果或?
  • 对不起,我不能说清楚..也许试一试

标签: node.js angular cors


【解决方案1】:

你能做的最好的就是

  • 通过 service worker (https://angular.io/guide/service-worker-getting-started) 向您的 Angular 应用程序添加缓存逻辑
  • 检测网络何时不可用(您可以选择向用户提供视觉反馈)。借助本地存储保存系统,您可以在网络可用时安排更新,这要归功于复制系统

PS : Http 拦截器对此很有用

【讨论】:

  • 我已经实现了类似的东西,但是我应该如何检查后端是否可用?让我们假设网络随时可用,但我的后端不可用,我需要直接检查,但是在请求中如何?
  • 在 Http 拦截器中使用来自 rxjs 的 catch 运算符(检查状态)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-27
  • 2019-01-23
  • 1970-01-01
  • 2010-10-25
  • 2013-10-02
  • 1970-01-01
相关资源
最近更新 更多