我们在bootstrap模式中呈现一个带有runat=“server”标记的ASP.NET Web表单。我们使用内置的bootstrap功能来使用jQuery加载函数执行get请求,然后将响应插入bootstrap模式标记。
asp.netweb表单在回发时返回HTTP状态代码204(无内容),这意味着我们可以提交表单,ASP.Net服务器端单击事件适当地触发,浏览器不尝试呈现响应。然后我们使用一些javascript关闭引导模式。
这在IE10、Firefox、Chrome和Safari的Windows上运行得很好。然而在iPad上,Safari通过将原始页面标记呈现为文本来响应204状态代码。我也尝试过302 Not Modified,它也没有解决这个问题(并且在语义上也不正确)。
我搜索过类似的问题,只找到了一个2008年的旧webkit bug的参考,其中代码被描述为在收到204时呈现空白页面。
变通办法
我还尝试将Response对象的SuppressContent属性设置为true:
if (!Page.IsPostBack)
{
// Do page rendering stuff
}
else
{
Response.StatusCode = (int)HttpStatusCode.NoContent;
Response.SuppressContent = true;
}
这确实有助于Safari不再将原始页面标记呈现为文本,引导模式通过javascript调用关闭,但safari在地址栏中显示在模式中加载的页面的URL,并且表现得像加载页面一样,但从来没有这样做过。用户可以使用应用程序并请求其他页面没有问题,所以我们可以认为这是一种解决方案。然而,我想找个干净点的。
有什么想法或建议吗?
注意:我们正在重构旧版Web应用的UI,无法完全改变页面的操作方式。
1条答案
按热度按时间ffscu2ro1#
代码302 -“找到”.尝试304 -“未修改”.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#redirection_messages