我正在寻找一种使用AngularJS存储http请求的优雅方式。 我正在开发一个在Cordova / Phonegap上运行的移动应用程序,我们遇到了问题,网络可能会丢失。
当用户编写评论但无法将其发送到服务器时,应该存储该请求(我认为LocalStorage将是一个好地方),并在服务器再次可用时自动发送。< / p>
我有两个问题: 1.有没有现成的解决方案? 如果没有,你会如何设计这样的东西?
我已经有了一个$ http拦截器,它使用state==0
侦听失败的请求,并在请求端{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中,稍后再尝试。但我不确定,这是否是正确的方法,或者我是否想要复杂化。
答案 0 :(得分:1)
使用本地存储区来保存数据,并使用一些标记指出数据未存储在服务器上。
然后,在另一个进程或由计时器触发或命名时,请按照以下步骤操作: