清除角$资源的缓存

时间:2015-12-13 17:49:22

标签: angularjs ngresource

在我的用例中,我有Carts和LineItems。我的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资源已更改并清除缓存。 虽然它的工作方式就像一个hacky解决方案,所以如果有人可能会对我做错了什么建议,我就会徘徊。

1 个答案:

答案 0 :(得分:3)

获取请求由浏览器缓存。最简单的方法是使用时间戳: 而不是GET / user / 100使用GET / user / 100?time = 120229393 有了这样的请求,您将始终点击服务器。

如果在多个请求中需要这个,可以使http拦截器添加时间戳参数来进行请求。