Какой ответ получил IE за дубликат поста? - PullRequest
0 голосов
/ 31 января 2012

Если вы посещаете веб-форму aspx и нажимаете кнопку отправки, вызывающую POST на сервере, затем снова нажимаете кнопку отправки, вызывая второй POST, прежде чем получить ответ от первого POST, что происходит с точки зрения ответа? Сервер обрабатывает оба запроса одновременно или последовательно? Сервер отправляет оба ответа? Браузер игнорирует один из ответов? Это может быть самоочевидным после ответа на предыдущие вопросы, но если бы я должен был вызвать Response.Clear (); Response.End (); для второго запроса, что произойдет на стороне браузера?

Ответы [ 2 ]

1 голос
/ 31 января 2012

Если на стороне сервера нет специальных средств для обработки нескольких запросов POST, сервер будет обрабатывать оба запроса независимо. Независимо от того, идет ли обработка одновременно - это зависит:

  • если ваш первый POST вызывает перезагрузку всей страницы, то невозможно запустить второй POST до того, как страница будет обработана на стороне сервера (поскольку ваш второй щелчок сделан со страницы, которая уже находится на стороне клиента)
  • если ваш первый POST вызывает AJAX POST для сервера, и обработка занимает некоторое время на сервере, то возможно, что вы получите два POSTS с одной и той же страницы, обработанной одновременно на стороне сервера

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

В частности, если вы просто очистите ответ (отправите пустой контент) и тип контента будет text/html, то браузер отобразит пустую страницу.

0 голосов
/ 31 января 2012

Я бы сказал, что может произойти любое из этих событий, в зависимости от точного времени.

Я считаю, что вызывает Response.Clear ();Response.End ();второй запрос приведет к пустому ответу, который получит браузер, возможно, после получения результатов первого запроса.

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