このトピックは、ここでも詳細に説明されています:
Is Safari on iOS 6 caching $.ajax results?
ただし、上記には含まれていない追加の注意事項が 1 つあります。
SetCacheability に関する ASP.NET MVC アプリケーションにも適用できる WCF に関する有用なコメントがありました。GET でキャッシュの利点が失われないように、これらの呼び出しは GET 以外のリクエストに限定することをお勧めします。
さまざまな理由から、すべてのコントローラーが継承する Controller 基本クラスを使用しています。これは、Initialize オーバーライドがキャッシュ ヘッダーの設定を処理できるという点でうまく機能しました。
public class SmartController : Controller
{
...
public HttpContextBase Context { get; set; }
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
Context = requestContext.HttpContext;
if (Context.Request.RequestType != "GET")
{
Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
}
base.Initialize(requestContext);
...
}
...
}