在某些情况下,我想将302重定向发送回同一页面。例如,如果我有一个随机数据存储区错误,我可以将它们重定向到同一页面,让它们自动重试。
我在firefox和chrome中测试了这个并且工作正常,我想知道我是否会在其他浏览器中遇到问题。
答案 0 :(得分:1)
你不能指望这一般起作用。 HTTP specification只是说
客户端应该检测无限重定向循环,
但没有关于如何做到这一点。在第一次重定向检测到存在一个周期并立即出错时,完全符合标准。
(另外,既然你是服务器,为什么不自己重试?)
答案 1 :(得分:0)
不,您不能依赖于任何浏览器将给定302的页面重新加载到同一路径的想法。有些人会遵循HTTP规范并选择不重试请求,而是告诉用户它遇到了无限重定向循环。
因此,您最好使用JavaScript位置重定向。
最终,只要需要获得正确的响应,您应该让用户的请求等待响应。因此,如果您无法访问数据存储区,您的Web应用程序应该暂停回答请求,直到它可以到达数据存储区并形成响应,或者它在您选择的某个阈值处超时并告诉用户它有错误比如500或404。
回想一下404不是GONE(410)并且“404错误表示所请求的资源将来可能再次可用。” 503可能会对您的问题感兴趣。