HY!
我的JS正在从控制器请求JSON来编辑现有对象,一个填充的下拉列表。
然后,View从我的autosuggest下拉列表中发送实际值,最近将新值与旧值进行比较,并存储新值。
就像一个人员名单。当我加载页面时,我的ddl中有一些人,我可以添加或删除人员。
这是我的控制者:
[HttpGet]
public JsonResult JSON(int order)
{
IEnumerable<Person> persons = dataServ.Envolvidos.GetPerson( order )
return this.Json( new { Result = persons }, JsonRequestBehavior.AllowGet );
}
我的Json致电:
$.getJSON("/Order/JSON", { order: $("#Id").val() }, function (data) {
...
});
一切都很顺利,除了I.E.正在缓存此JSON,当我发送新值并再次返回编辑页面时,旧值不是新值。但是新值存储在数据库中,应该是这样。
我在Chrome和Firefox上进行了测试,在我编辑并再次编辑后,它完成了一个新的json调用,并且新的值在那里,与I.E不同。
我错过了什么吗?我应该对JSON结果做什么不进行缓存?
答案 0 :(得分:20)
这将禁用jQuery ajax的缓存:
jQuery.ajaxSetup({ cache: false });
答案 1 :(得分:8)
我认为默认情况下IE会缓存JSON请求,这与其他浏览器不同。您必须手动包含相应的标头,以告知响应不被缓存。这不会伤害已经不缓存的现有浏览器,它只会更明确。