我有一个像
这样的控制器[OutputCache(Location = System.Web.UI.OutputCacheLocation.Any, VaryByParam = "category", Duration = 60)]
public ActionResult Search(string keywords, string location, string category)
{
// ...返回View等.. }
和此视图上的ajax请求
function refreshPager(pageNum, nextOper) {
$.ajax({
url: String.format("/Adv/GetPagesData?currentPage={0}&SortBy={1}&keywords={2}&location={3}&country={4}&category={5}&minPrice={6}&maxPrice={7}&type={8}&condition={9}", pageNum, $("#SortBy option:selected").text(), $("#keywords").val(), $("#id-location").val(), $("#Country option:selected").val(), $("#search-category option:selected").val(), $("#minPrice").val(), $("#maxPrice").val(), $("#ajaxTabs li[class='active']").attr("id"), $("#condition option:selected").val()),
method: 'GET',
datatype: 'json',
data: { query: 'test' },
success: function (pdata) {
pagedata = pdata;
maxPages = pdata.length;
if (pageNum < 1) pageNum = 1;
if (pageNum > maxPages) pageNum = maxPages;
currentPage = pageNum;
ko.mapping.fromJS(pagedata, {}, viewModel.PagedItems);
$(".pageItem").removeClass("selectedItem");
$(".pageItem:eq(" + pageNum + ")").addClass("selectedItem");
}
}).fail(function () { alert('Ошибка получения данных, попробуйте еще раз') }).success(function () {
count = 0;
$('.pager-btn').each(function (index, el) {
if (el.innerHTML == pageNum) {
$(el.parentNode).addClass("active");
count++;
}
});
if (count == 0) {
$('#NotFound').show();
} else {
$('#NotFound').hide();
}
nextOper(currentPage);
});
}
这在所有Windows浏览器中都很好用但在IoS Safari中失败了。 当缓存属性关闭时,它在Safari中也可以。 可能有人也遇到了这个问题吗?
答案 0 :(得分:0)
以下将阻止所有未来的AJAX请求被缓存,无论您使用哪种jQuery方法($ .get,$ .ajax等)
$.ajaxSetup({ cache: false });