执行一个操作并重定向到同一个URL不会刷新pag

2024-06-02 08:15:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我们正在开发一个使用Apache、Python和Django的新网站。在

在开发阶段,没有问题,但是在使用firefox3.5.3绑定到Apache之后,我们遇到了一个奇怪的问题。在

我们的立场是:

http://website.fr/search/

当我们想更改研究的顺序时,我们将用户发送到:

http://website.fr/search/order/price/

此页更改会话变量并将重定向(代码302)重定向到:

http://website.fr/search/

问题是Apache发送了302apache代码,而Firefox不刷新页面。 当我们将用户重定向到他以前所在的页面时,我们遇到了同样的问题。在

我们应该如何强制刷新页面?在


Tags: django代码用户httpsearch顺序网站apache
3条回答

重定向到

http://website.fr/search/?ignoredvar=<random int>

如果您需要更好的解决方案,请提供完整的http对话。 可以使用firebug或livehttp报头跟踪对话。在

顺便说一句,上面的解决方案是我所知道的唯一一个类似的错误在IE上

我觉得你做错了。同一个URL应该是同一个页面。所有使用HTTP和web浏览器的东西都是这样假设的,如果你不遵守这个约定,你就会陷入麻烦。只需将搜索参数和排序顺序作为查询参数添加到URL中。在

结果是,浏览器请求新的URL,via 302被重定向回前一个URL,后者在缓存中,因此不会刷新。像Piotr建议的那样,添加一个随机整数可以解决这个问题。对于随机性,可以使用简单的时间戳。在

这意味着你正在做的转发会让你的应用程序毫无反应,并禁止用户将结果书签化——我想知道这是否真的是你想做的。在

可能值得尝试使用303或307状态代码而不是302,这可能会有不同的行为。在

另请参见: http://en.wikipedia.org/wiki/HTTP_302

http://en.wikipedia.org/wiki/Representational_State_Transfer

相关问题 更多 >