在我的用例中,我有购物车和订单项。我的 REST 服务具有以下资源 URL:
get|post|delete|put api/v1/carts/:cartId
get|post|delete|put api/v1/carts/:cartId/lineItems/:lineItemId
get|post|delete|put api/v1/lineItems/:lineItemId
问题是当我这样做时:
delete api/v1/carts/Default/lineItem/:lineItemId
然后我这样做:
get api/v1/carts/Default
Angular 不会通过服务器获取购物车,而是从缓存中获取购物车,缓存将删除的订单项返回到购物车中 我尝试了各种技巧,尝试通过添加 {cache: false} 选项来禁用缓存,但无法让它工作 我能够让它工作的唯一方法是向
发出 POST 请求api/v1/carts/Default
主体为空,告诉 Angular 资源已更改并清除缓存。 尽管它有效,但它看起来像是一个黑客解决方案,所以我在想是否有人可能对我做错了什么提出建议。
最佳答案
获取请求由浏览器缓存。最简单的方法是使用时间戳: 而不是 GET/user/100 使用 GET/user/100?time=120229393 有了这样的请求,您将始终访问服务器。
如果你在多个请求中需要这个,你可以让http拦截器在请求中添加时间戳参数。
关于angularjs - 清除 Angular $resource的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34254276/