我有一个网站,基本上允许客户构建一个包含可配置项目的购物车。用户将选择一个项目,系统会提示他们选择他们想要的第一个选项,然后他们将被发送到第二个步骤,在那里他们选择第二个选项,等等。
步骤数和选项数是可变的,因为它们是由客户端定义的。通常该项目只有 2-3 个步骤和 5-10 个选项。但是,为了让客户更快地完成操作,如果给定步骤只有一个选项可用,系统会自动选择该选项并将用户转到下一步。
客户决定设置一个包含 10 多个步骤的项目,每个步骤只有一个选项。这导致整个过程自动选择一切。 FireFox 不喜欢这样,因为它会给出错误
Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
(我没有检查过 IE 或 Chrome,尽管它可能会给出类似的错误)。
解决这个问题的最佳方法是什么?
现在的流程基本上是
- 用户选择项目
- 如果有多个可用选项,用户将选择选项。否则,网站会自行执行步骤 3。
- 通过 POST 将选项添加到购物车
- 重定向到
Page.aspx?step=#
- 根据需要多次重复步骤 2-4
我可以对代码或页面进行任何更改,以便 FireFox 不会认为我处于无限循环中吗?
最佳答案
令我惊讶的是,如果 # 每次都不同,您会收到无尽的重定向错误,但无论哪种方式,这似乎都不是最好的架构。基本上,如果代码决定可以自动完成某个步骤,它会立即重定向到具有新步骤号的同一页面?
为什么不让您的代码在不重定向的情况下执行此操作,根据需要增加服务器代码中的页码,并直接向他们显示正确的步骤,而无需重定向?
无论您在每一步发布时发生什么,我认为您都可以在代码中轻松完成,而无需实际发布新帖子。
关于c# - 处理多个自动重定向的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4441678/