Angular-poller не работает в IE11, когда инструмент разработки не открыт

Я работаю над приложением angular v1.3 и использую angular-poller в одном из моих контроллеров для автоматической отправки запроса на получение новых данных из моего бэкэнда каждые 2 секунды.

Он отлично работает в Chrome, но не работает в IE11. Но как ни странно, я использую Fiddler, чтобы увидеть, отправляются ли запросы, когда я использую IE11, я вижу, что в IE 11, если открывается окно инструментов разработки, то запросы отправляются, и мое приложение работает правильно., но если я не открываю консоль разработки, запросы даже не делаются, по крайней мере, это то, что показывает мне скрипач.

    poller.get(myResourceService, { action: 'get',
                  argumentsArray: [{
                    id: $stateParams.id
                  }],
                  delay: '2000',
                  smart:true })
  .promise.then(null, null, function(result) {
    $scope.details= result;
  });

Выше приведен код, который я имею в моем контроллере. Это действительно раздражающая проблема, и я потратил на это часы. Таким образом, любая помощь будет принята с благодарностью.

ура

1 ответ

Решение

Что я обнаружил в IE, так это в том, что они кэшируют AJAX-вызов, и когда вы используете инструменты Fiddler/Development, он будет вести себя иначе, т.е. не будет кэшировать AJAX-вызов. Чтобы решить эту проблему, я обычно добавляю заголовок Cache-Control в заголовок ответа и заполняю его "no-cache".

Проверьте эту ссылку для более подробной информации. Как контролировать кэширование веб-страниц во всех браузерах?

Другие вопросы по тегам