Javascript AngularJS:存储失败的http请求,请稍后重试
我正在寻找一种优雅的方法来使用AngularJS存储http请求。 我正在开发一个移动应用程序,运行在Cordova/Phonegap上,现在我们遇到了一个问题,网络可能会丢失 当用户写评论但无法将其发送到服务器时,应该存储请求(我认为LocalStorage将是一个好地方),并在服务器再次可用时自动发送 我有两个问题: 1.有什么现成的解决方案吗? 2.如果没有,你将如何设计这样的东西 我已经有了一个$http拦截器,它侦听状态=0的失败请求,并在请求端设置了一个标志Javascript AngularJS:存储失败的http请求,请稍后重试,javascript,angularjs,cordova,Javascript,Angularjs,Cordova,我正在寻找一种优雅的方法来使用AngularJS存储http请求。 我正在开发一个移动应用程序,运行在Cordova/Phonegap上,现在我们遇到了一个问题,网络可能会丢失 当用户写评论但无法将其发送到服务器时,应该存储请求(我认为LocalStorage将是一个好地方),并在服务器再次可用时自动发送 我有两个问题: 1.有什么现成的解决方案吗? 2.如果没有,你将如何设计这样的东西 我已经有了一个$http拦截器,它侦听状态=0的失败请求,并在请求端设置了一个标志{retry:false}
{retry:false}
:
responseError: function(response) {
// something went wrong, report to airbrake
if(response.status==0 && response.config.retry) {
// don't reject the response, user should see everything is ok
// somehow here we should store the request, and try it later
return response;
}
return $q.reject(response);
}
然后,我将使用一个服务,将请求存储在LocalStorage中,并在以后进行尝试。但我不确定这是正确的方法,还是我正在考虑将其复杂化。使用本地存储来保存数据,并使用一些标志指示数据未存储在服务器上 然后,在另一个进程上,或由计时器或您命名的计时器触发,请执行以下步骤:
- 将数据发送到服务器
- 成功了:将数据标记为已保存
- 无效:请稍后重试,显示通知(可选)