Что означает «перезагрузить безопасные» веб-страницы и можно ли этого достичь с помощью Ajax? - PullRequest
2 голосов
/ 17 февраля 2011

1) Я видел вопрос интервью по этому вопросу, и я предполагаю, что это как-то связано с отправкой формы и избеганием двойной подачи. Кто-нибудь может это подтвердить?

2) Если это предположение верно, можно ли это сделать с помощью Ajax? Если да, есть ли ссылка, на которую кто-то может указать мне? (Я предполагаю, что вы сгенерируете какое-то случайное число и включите его в форму в качестве скрытого поля, а затем убедитесь, что число не было передано ранее для сеанса).

1 Ответ

0 голосов
/ 17 февраля 2011

Redirect-after-post - это метод, позволяющий избежать проблем с обновлением пользователя или использованием кнопки «Назад» для возврата к опубликованной форме. Короче говоря, вместо предоставления страницы ответа для сообщения HTTP, которое при перезагрузке вызывает другое сообщение, вы запускаете перенаправление 303 (или 302) для поддержки древних браузеров, воспользовавшись ошибкой, которая так же стар, как в Интернете). Это заставляет браузер выдавать второй HTTP-запрос - на этот раз - и, если страница ответа на него перезагружается, проблем не должно быть. Просто убедитесь, что все изменения внесены обработчиком постов, и страница, на которую вы перенаправляете, не имеет побочных эффектов.

Если вы публикуете сообщение с помощью XMLHttpRequest, тогда будет выполняться перенаправление; если вы специально не поддерживаете его, используя хеш-часть местоположения или новые методы истории HTML5 , тогда кнопка возврата и перезагрузка не будут вызывать публикацию AJAX снова.

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