2015-12-13 3 views
2

В моем случае использования у меня есть Carts и LineItems. Моя служба REST имеет следующие адреса ресурсов:

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 

probelm в том, что когда я делаю:

delete api/v1/carts/Default/lineItem/:lineItemId 

, а затем я:

get api/v1/carts/Default 

угловой не попал сервер в получить корзину, но она получает ее из кеша, который возвращает удаленную позицию обратно в корзину. Я пробовал всевозможные трюки, попытался отключить кеш, добавив параметр {cache: false}, но co пакетирования не заставить его работать единственный способ, которым я смог получить его на работу было, если бы я сделать запрос POST к

api/v1/carts/Default 

с пустым телом, которое говорит Угловое, что ресурс был изменен, и очищает кэш , Несмотря на то, что он работает, он швы, как хакерское решение, поэтому я блуждал, если у кого-то может быть предложение о том, что я делаю неправильно.

+0

Прочитать http://stackoverflow.com/questions/17059569/how-to-refresh-invalidate-resource-cache-in-angularjs –

ответ

3

Получить запросы кэшируются браузерами. Самый простой способ - использовать временную метку: вместо GET/user/100 использовать GET/user/100? Time = 120229393 С таким запросом вы всегда будете поражать сервер.

Если вам это нужно в нескольких запросах, вы можете сделать http-перехватчик для добавления параметра timestamp для запроса.

+0

Отлично! Спасибо, Петр – dimitar