ここに私が理解できないものがあります。
クライアントにブラウザでキャッシュしてもらいたい大きな 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 では機能しませんよね? または、これをどのように行う必要がありますか?
ありがとう!