Если вы посмотрите на API из window.beforeunload()
, вы увидите, что, хотя широко поддерживается базовое событие unload, пользовательское сообщение может быть установлено только в Internet Explorer и определенных версиях некоторые браузеры. Так что просто используйте стандартное стандартное сообщение.
Эта функция (пользовательские сообщения) часто использовалась вредоносными сайтами для вредного или злонамеренного взаимодействия с пользователем. Вот почему многие браузеры больше не поддерживают это, пока какой-то патч не устранит угрозу для пользователей.
blockquote>Стандартное решение для сообщений:
window.addEventListener('beforeunload', function (e) { // Cancel the event e.preventDefault(); // Chrome requires returnValue to be set e.returnValue = ''; });
Это не возможно.
Экземпляр HTTPWebRequest представляет буквально один экземпляр запроса (хотя существуют пограничные случаи, где он повторит внутренне), и поэтому не что-то, что может логически быть повторено. Это способно к возврату точно одного ответа (запрос/ответ, являющийся логической парой), и хотя можно осмотреть тот ответ многократно, Вы получите точно тот же объект.
В основном Вы думаете, что экземпляр HTTPWebRequest является своего рода фабрикой, но это действительно конкретно. Необходимо создать другой экземпляр.
Где Вы пытаетесь сериализировать запрос? Это могла бы быть хорошая идея сериализировать запрос, прежде чем Вы попытаетесь сделать его и затем снова послать запрос при отказе (от сериализированного экземпляра).
Кроме того, Вы могли бы хотеть удалить прокси, сериализировать экземпляр и затем задержать прокси, так как это, кажется, где проблема заключается в сериализации запроса.
Нет никакого ярлыка, единственный способ восстановить запрос создает другой объект HttpWebRequest тот же способ, которым Вы создали исходный.