Кэширование Microsoft Edge Ajax?

Итак, у меня есть система ajax для загрузки контента на веб-сайт, он работает следующим образом:

При нажатии кнопки вызывается функция Javascript:

onclick="doSomething('abc')"

Мой Javascript выглядит следующим образом:

//Ajax
var xmlhttp;
function loadXMLDoc(url,cfunc) {
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=cfunc;
    xmlhttp.open("GET",url,true);
    xmlhttp.send();
}
function doSomething(var) {
    loadXMLDoc("http://www.website.com/ajax/doSomething.php?var="+var, function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById("response-container").innerHTML=xmlhttp.responseText;
        }
    });
}

PHP файл называется просто эхо-текстом примерно так:

echo "Response here";

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

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

Любые идеи, какое правильное решение для этого? Я видел упоминание использования заголовков, но я не уверен, как применить исправление в этой ситуации.

Ответ 1

У нас были проблемы с кэшированными запросами ajax на Edge и IE 10/11. Наше решение заключалось в использовании HTTP-заголовка Cache-Control: no-cache Это работает без отметки времени.

Ответ 2

Да, в XMLHttpRequest нет ничего, что означало бы его кэширование. Браузеры обрабатывают их так же, как и другие HTTP-запросы. Вы можете полностью контролировать, как браузер кэширует ваш контент с помощью HTTP-заголовков.

Ответ 3

Лучший способ отключить кеш в IE или MS Edge - сделать это:

Просто нажмите f12, затем перейдите на вкладку сети и найдите четвертую кнопку в окне инструмента с этим заголовком: Всегда обновляйтесь с сервера.

Он будет отправлять запрос каждый раз без кеша. введите описание изображения здесь