Предотвращение кэширования вызовов AJAX в библиотеке Google Closure - PullRequest
3 голосов
/ 02 декабря 2011

Я не могу найти способ отключить кеш браузера (а иногда и сервера "304") в вызовах GCL AJAX, как я делал в jQuery.

$.ajax({
  url: "test.html",
  cache: false,
});

Может быть, я могу как-то контролировать заголовки?

Мне не нравятся ответы, такие как добавление случайной строки к параметру GET вручную . Как:

requestObject.send("/feed/get?id=" + id + '&nocache=' + new Date().getTime());

Ответы [ 2 ]

2 голосов
/ 02 декабря 2011
Опция

Cache в $.ajax ставит метку времени в параметре GET .

Однако вы можете поместить Cache-Control: no-cache в заголовки запроса при вызове send() метод.

0 голосов
/ 09 марта 2012

Предполагая, что вы используете xhrio для выполнения ajax, другой способ сделать это - установить заголовок после создания экземпляра xhrio.

var requestObject = new goog.net.XhrIo();
requestObject.headers.set('Cache-Control', 'no-cache');
goog.events.listen(requestObject, goog.net.EventType.COMPLETE, function(e) {
    var obj = this.getResponseJson();
}); 
requestObject.send('http://example.com/jsoncontentsource'); 
...