Как изменить запрос, чтобы избежать кеширования результатов? - PullRequest
1 голос
/ 28 июня 2011

Я получаю XML-файл с сервера с функцией (JQuery)

function load_config_xml(){
    $.ajax({
        url: 'config/conf.xml',
        dataType: "xml",
        success:parse_xml,
        error: function(){
            alert("Error during loading xml file");
        }
    });
}

но он не возвращает свежих результатов, кеширует lighttpd. Как изменить запрос, чтобы избежать кэширования результатов?

1 Ответ

1 голос
/ 28 июня 2011

Самый простой обходной путь - явное использование запроса POST. Браузер не будет кешировать такие:

function load_config_xml(){
    $.ajax({
        url: 'config/conf.xml',
        dataType: "xml",
        type: 'POST',     // here we go
        success:parse_xml,
        error: function(){
            alert("Error during loading xml file");
        }
    });
}

jQuery также предлагает опцию cache, которую вы можете установить на false. Это создает некоторый результат:

cache: false

По сути, jQuery будет просто изменять строку запроса для каждого запроса, что, конечно, вы можете сделать самостоятельно:

url: 'config/conf.xml?cachebuster=' + (+new Date())
...