1

我有一个 ASP.NET 页面,其中动态设置了 iframe src:

<iframe id="specialframe" src="<%= IframeSrc %>"></iframe>

和代码隐藏:

internal string IframeSrc { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
    IframeSrc = SpecialService.GetNewUrl();
}

SpecialService是一种第三方服务,在调用时会返回一个一次性使用的 URL,如下所示:

http://www.specialservice.com/oneTimeUseId=fh8396123lkjufgh49

出于安全考虑,此 ID 在过期前只能使用一次。然而,这导致了一个问题。

我第一次在浏览器中显示页面时,它会正确加载 iframe。但是,如果我点击refresh,我将在 iframe 中收到一条错误消息,因为它正在尝试使用相同的一次性使用 ID。如果我Ctrl+F5刷新以强制清除缓存,它可以正常工作,但我不能告诉我的用户每次都这样做。

我的问题是,是否可以强制浏览器从不使用缓存并始终从服务器请求新副本?

4

1 回答 1

0

您需要正确设置过期和缓存页面,以便浏览器始终必须从服务器请求页面。

这个问题可能是一个好的开始http://msdn.microsoft.com/en-us/library/y18he7cw.aspx

您需要无缓存(并且可能在过去设置过期,也可能是 SetMaxAge):

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now.AddMinutes(-30));
于 2012-06-20T02:19:11.127 回答