2010-05-06 3 views

ответ

22

cache должно быть логическое значение, а не строка:

$.ajax({type: "GET", 
    url: "/" + filename, 
    dataType: "xml", 
    cache: false, 
    success: function(xml){ 
    /* Parsing code here */ 
    } 
}); 
+2

+1 строка '' false '' будет интерпретироваться как 'истина', если ее не сравнить с помощью' === '. –

+4

@Pekka - это правда, но в этом конкретном случае [jQuery СДЕЛАЕТСЯ с ===] (http://github.com/jquery/jquery/blob/master/src/ajax.js#L261), однако это только попытки избежать кеша, если 's.cache === false' (но, конечно,« false »=== false => false) – Matt

+0

@Matt ah! Хороший улов. –

0

Возможно, это mimetype файла xml, который вы возвращаете? http://www.nerdydork.com/ie-json-caching-bug.html

Один из комментаторов на своем блоге предложил добавить строку времени для запроса JSon:

Я не буду верить в установке кэш выключен в .ajaxSetup ....

Так что просто добавьте строку времени в конце каждого запроса json, например.

$ .getJSON («/ URL /», {данные: 123, т:. (новая дата()) GetTime()}, функция (данные) {// делаем все,});

+0

'Я не буду верить в настройке кэша кремовый в .ajaxSetup ...' - Почему ??? Это то же самое! – WoIIe

+0

Временный трюк сделал это, спасибо! – Robert

Смежные вопросы