这是我无法弄清楚的事情。
我有我希望客户端在浏览器中缓存的大型 JSON 数据集。我正在使用 jquery AJAX 调用 ac# web 方法。
[System.Web.Services.WebMethod]
这是jQuery:
$.ajax({
url: "/Ajax/ItemAffinity.aspx/FetchAffinityItems?ItemID=" + escape($("#SearchSelectedPageID").val()),
type: "POST",
data: "{}",
cache: true,
contentType: "application/json; charset=utf-8",
dataType: "json",
//contentType: "application/json; charset=utf-8",
success: function (data) {
//do cool stuff
}
});
无论我在 web 方法中在服务器上指定什么,HTTP HEADERS 总是看起来像这样:
Cache-Control no-cache
Content-Length 919527
Content-Type application/json; charset=utf-8
Expires -1
我放入 web 服务的任何设置都会被立即忽略,如下所示:
HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(1));
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
Web 服务不适用于 HTTP GET,对吧?或者我应该怎么做?
谢谢!