Javascript ios Safari 6中的Ajax post请求不起作用
升级到iOS6.0版本后,ajax登录页面停止工作。 它看起来像是jquery$发出的ajax post请求。即使在添加了随机querystring参数并将Cache control设置为“no Cache”(这些可以在网上找到,作为缓存问题的解决方案)之后,ajax也会缓存在safari中。 第一次登录尝试可以正常工作,但在第二次登录请求下注销后,浏览器不会从服务器获得任何响应正文。只有标题 这同样适用于iOS6GM和5版本以及所有桌面浏览器Javascript ios Safari 6中的Ajax post请求不起作用,javascript,ios,ajax,mobile-safari,ios6,Javascript,Ios,Ajax,Mobile Safari,Ios6,升级到iOS6.0版本后,ajax登录页面停止工作。 它看起来像是jquery$发出的ajax post请求。即使在添加了随机querystring参数并将Cache control设置为“no Cache”(这些可以在网上找到,作为缓存问题的解决方案)之后,ajax也会缓存在safari中。 第一次登录尝试可以正常工作,但在第二次登录请求下注销后,浏览器不会从服务器获得任何响应正文。只有标题 这同样适用于iOS6GM和5版本以及所有桌面浏览器 有什么想法吗?我刚刚读了这篇文章,似乎与你的问题有
有什么想法吗?我刚刚读了这篇文章,似乎与你的问题有关。
这似乎是苹果在iOS6中对Safari的“过度优化”。本主题也在这里详细介绍: 但是,上述内容未涉及另一个注释 有一条关于WCF的有用评论也适用于ASP.NET MVC应用程序的可重设缓存性。我建议这些调用仅限于非GET请求,以避免失去GET上缓存的好处 我使用了一个控制器基类,我的所有控制器都从该基类继承,原因有很多,这很好,因为我的初始化覆盖可以处理设置缓存头
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);
...
}
...
}
我也读了很多关于这个问题的文章,并尝试了两种解决方案:无缓存头和随机参数。这对我不起作用,现在我尝试移动所有POST AJAX请求以获取请求。但我不确定这是安全的解决方案。在SSL会话中使用GET-even发送密码安全吗?我认为,仅使用随机参数就足够了,因为它将为每个请求生成一个新的url。仅在添加pragma后使用asp.net:IIS缓存控件中没有缓存标头:没有缓存不足我不建议使用GET发送敏感数据。使用post或put。我遇到了safari缓存我的post请求的问题。无缓存头现在由服务器添加,现在可以正常工作。你能发布一个请求和响应标题的屏幕截图来显示一个似乎被缓存的帖子吗?对不起,错过了你上面的评论:)很好,你也已经修复了。Safari 6已经给我带来了一些问题。重复的