document.readyState == “завершенный” всегда является ложью. Состояние является всегда “интерактивным”

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

  • Это не найдет общие опечатки.
  • Это не препятствует тому, чтобы люди ввели недопустимые или искусственные адреса электронной почты или ввели чужой адрес.

, Если Вы хотите проверить это, электронное письмо корректно, у Вас нет выбора, чем отправить электронное письмо с подтверждением и сделать, чтобы пользователь ответил на это. Во многих случаях Вы будете иметь для отправки почты подтверждения так или иначе за соображениями безопасности или по этическим причинам (таким образом, Вы не будете мочь, например, заключать контракт с кем-то под сервисом против их воли).

5
задан Aaron Daniels 4 August 2009 в 01:30
поделиться

4 ответа

Я только что узнал, что проблема связана с IFrame, о котором, прошу прощения, не было и речи.

Дополнительную информацию можно найти здесь :

IE (неожиданно получил мой голос одобрение здесь) Есть onreadystatechange событие, которое запускается всякий раз, когда готовое состояние iFrame изменения собственности. Это готовое государство отражает, где находится загрузка в процесс.

Встроенный: когда вы изначально устанавливаете src значение элемента iFrame, readyState переходит к загрузке. когда файл полностью загрузился, readyState изменится на интерактивный. Большая разница между IE и в других браузерах IE затем меняет свойство readyState для завершения когда страница (или приложение) полностью загружен и готов для пользователя.

Вложение: ведет себя идентично в случае Inline IE, , но Свойство readyState никогда не меняется на завершено. Это мало что сделало бы смысл, так как пользователь должен вручную откройте файл, дважды щелкнув по нему или открыть его из какого-либо приложения.

5
ответ дан 13 December 2019 в 22:13
поделиться

Для того, чтобы ReadyState переключился на Complete, серверная сторона должна разорвать соединение.

Если вы посмотрите на свой код, вы, вероятно, не вызываете Response.End ПОСЛЕ метода BinaryWrite или WriteToStream. Это необходимо для того, чтобы сбросить ответ и предупредить клиента о том, что все было передано.

Обратите внимание, что вы все еще можете обрабатывать данные на стороне сервера после выполнения вызова Response.End, вы просто не можете отправлять больше данных клиенту.

Хорошим примером того, как это сделать правильно, является страница 171 книги «Освоение». ASP.Net с C # от А. Рассела Джонса ( предварительный просмотр Google здесь ).

Главное в том, что вы должны создать свой поток, прочитать его в массив байтов,

5
ответ дан 13 December 2019 в 22:13
поделиться

Вы пытались вызвать Response.Close () вместо или до Response.End () ? После сравнения их в Reflector оказалось, что они разные.

0
ответ дан 13 December 2019 в 22:13
поделиться

при записи непосредственно в поток вы должны установить HTTP-заголовок длины содержимого на правильный размер отправляемых двоичных данных. Это также может быть проблема с типом содержимого (multipart / ...), которая может сбить с толку браузер.

0
ответ дан 13 December 2019 в 22:13
поделиться