本网页的本地副本已过期

时间:2010-02-24 13:06:15

标签: django apache session cookies

我的网页在浏览器的后退按钮上导致以下错误, 它适用于Firefox,但不适用于IE,

IE说,

最有可能原因: •此网页的本地副本已过期,网站要求您再次下载。

你可以尝试什么:      单击工具栏上的“刷新”按钮以重新加载页面。刷新后,您可能需要再次导航到特定网页,或重新输入信息。

应该是什么原因?

我正在使用Django + mod_python + apache作为生产环境。

如何消除此错误或如何追踪任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

你的建议没错。这是因为你在那个页面上使用过POST。如果您希望人们返回页面,请在页面上放置一个链接以将其带回到他们想去的位置,但请确保他们仍然可以正常查看页面而无需向其发送数据。

答案 1 :(得分:0)

并不总是可以使用GET代替POST,例如当数据量超过最大URL长度时。所以,如果你想使用POST,我会建议你在每次POST后用重定向进行响应。类似的东西(伪代码):

def view(request):
   form = Form(request.form)
   if request.method == 'POST' and form.validates():
       # process form data, e.g.
       m = Model(form.data)
       m.save()
       # response with a redirect (e.g. to the newly inserted data, or
       # back to the initial page)
       return redirect(m.get_absolute_url())
   return render_template('template.html', form=form)

这样做的好处是,用户不会收到有关重新发送您描述的任何POST数据的恼人警告,并且不太可能发生相同数据的多次提交(这意味着例如更少的双重发布)。