Как правильно обрабатывать несколько автоматических перенаправлений? - PullRequest
2 голосов
/ 14 декабря 2010

У меня есть веб-сайт, который в основном позволяет клиентам создавать корзину с элементом, который можно настроить. Пользователь выберет элемент, и ему будет предложено выбрать первый вариант, который он хочет, его отправят на второй шаг, где он выберет свой второй вариант и т. Д.

Количество шагов и количество параметров являются переменными, так как они определяются клиентом. Обычно пункт имеет 2-3 шага с 5-10 вариантами. Однако, чтобы сделать его более быстрым для клиента, если для данного шага доступна только одна опция, он будет выбран автоматически и пользователь будет отправлен на следующий шаг.

Клиент решил настроить элемент с 10+ шагами, используя только одну опцию для каждого шага. В результате весь процесс автоматически выбирает все. FireFox это не нравится, так как выдает ошибку

Firefox обнаружил, что сервер перенаправляет запрос на это обращаться таким образом, чтобы никогда не полный.

(я не проверял IE или Chrome, хотя, вероятно, он выдает похожие ошибки).

Какой лучший способ исправить это?

Прямо сейчас процесс в основном

  1. Пользователь выбирает товар
  2. Пользователь выбирает вариант, если доступно несколько вариантов. В противном случае сайт выполняет шаг 3.
  3. POST для добавления опции в корзину
  4. Перенаправление на Page.aspx?step=#
  5. Повторите шаги 2-4 столько раз, сколько необходимо

Могу ли я внести какие-либо изменения в код или страницу, чтобы FireFox не думал, что я нахожусь в бесконечном цикле?

Ответы [ 2 ]

4 голосов
/ 14 декабря 2010

Я удивлен, что вы получаете бесконечную ошибку перенаправления, если # каждый раз отличается, но в любом случае, это не похоже на лучшую архитектуру. По сути, если код решает, что шаг может быть выполнен автоматически, он мгновенно перенаправляет на ту же страницу с новым номером шага?

Почему бы просто не сделать так, чтобы ваш код делал это без перенаправления, увеличивать номер страницы в коде сервера по мере необходимости и показывать им правильный шаг напрямую, без необходимости перенаправления?

Что бы ни происходило, когда вы выполняете POST на каждом шаге, я думаю, вы можете так же легко выполнить код без необходимости создавать новую публикацию.

1 голос
/ 14 декабря 2010

Я думаю, что-то вроде этого будет работать:

  1. Считать шаг # из строки запроса в локальную переменную
  2. Загрузка данных из базы данных, передавая локальную переменную шага
  3. Если данные содержат только одну опцию, то:
    (3.1) Вариант магазина
    (3.2) увеличить локальную переменную шага
    (3.3) Перейти к 2

  4. Загрузить страницу с данными из шага 2


Как ваш код обрабатывает, когда кто-то пропускает опции и вводит Page.aspx? Step = 10 в адресную строку, когда они находятся на Page.aspx? Step = 1?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...