ios Safari 6中的Ajax post请求不起作用
问题描述:
升级到iOS6.0发布后,ajax登录页面停止工作。 它看起来像jQuery发出的ajax post请求$ .ajax甚至在添加了随机查询字符串参数并将Cache-control设置为“no-cache”(这些在网络上作为缓存问题的解决方案)后,被缓存在safari中。 首次登录尝试正常工作,但在第二次登录请求浏览器注销后,不会从服务器获取任何响应主体。只有标题。ios Safari 6中的Ajax post请求不起作用
在iOS 6 GM和5版本以及所有桌面浏览器中也一样。
任何想法?
答
这个话题也涉及到很多的细节在这里: Is Safari on iOS 6 caching $.ajax results?
,还应注意,但是,不盖在上面。
有一个对WCF有用的评论,它也适用于ASP.NET MVC应用程序和SetCacheability。我建议这些调用仅限于非GET请求,以避免在GET上丢失缓存的好处。
我使用了一个控制器基类,我的所有控制器继承自许多原因,而且这很好,因为我的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);
...
}
...
}
http://stackoverflow.com/questions/12506897/is-safari-on-ios-6-caching-ajax-results的重复 – Brombomb