【发布时间】:2011-10-20 00:40:48
【问题描述】:
我在一个网站上工作以管理我的公司用户。基本上它允许登录、注册、更改数据等。我做这个网站是因为我们希望统一每个产品的客户。如果我已经注册了某个产品,那么我可以登录到其他产品。
从某个产品站点到用户站点(或从用户站点到产品站点)的所有重定向都是通过 POST 进行的,因为如果有用户登录,则票证太长而无法使用 GET。这会导致用户站点的 URL 出现 302 结果,该用户站点的 URL 用于从其他系统(带有所有需要的参数)访问,并且在用户站点的正确页面出现 200 之后。
假设我尝试进入某个需要身份验证的页面,我会得到以下结果:
- GET http://www.myDomain.com/somePageWhichNeedsAuthenticatedUser 401(未授权)
- 发帖http://users.myDomain.com/Access?parameters302
- 获取http://users.myDomain.com/Login200
所以在 Chrome 或 Safari 中,当我从登录页面点击返回按钮时,我将被重定向到 somePageWhichNeedsAuthentication。但是从 IE 或 Firefox 会重定向到 Access 页面或 somePageWhichNeedsAuthenticatedUser,我真的不知道,但是这些页面中的任何一个都会重定向回登录页面,所以除非我快速点击两次按钮,否则它不会起作用。
我该如何解决这个问题?
更新
做一些其他测试我发现了另一种情况:我尝试登录(不是访问需要身份验证的某些页面)所以结果如下:
- 获取http://www.myDomain.com/Login302
- 发帖http://users.myDomain.com/Access?parameters302
- 获取http://users.myDomain.com/Login200
Chrome 和 Safari 再次完美。 Firefox 正在重定向到http://www.myDomain.com/Login。最后,一旦您单击“登录”链接,IE 就会失败,因为它不允许状态 302 的内容响应。所以我必须用 200 强制 http://www.myDomain.com/Login 的响应。这让 Firefox 做同样的事情(IE 也一样)。
更新 2
这里有一个firefox的日志。由于打开了其他一些选项卡,因此在示例一之前有一些请求。我已经完成了第二个示例。产品域为http://localhost/MktWeb,用户域为http://usuarios2.nosis.com.ar。 http://www.yourfilelink.com/get.php?fid=719269
【问题讨论】:
标签: internet-explorer firefox cross-browser back-button back-button-control