Мне нужно взять HTML-код текущей страницы и отправить его через форму.Упрощенная версия моей страницы выглядит следующим образом:
<body>
<div id="container">
<!-- stuff here -->
<form id="pageform" action="mypage.php" method="post">
<input type="hidden" id="Source" />
<button type="submit" name="submit">Submit</button>
</form>
</div>
<script type="text/javascript">
function handlesubmit() {
var pageSource = $("#container").html();
$("#Source").val(pageSource);
return true;
}
$(function() {
$("#pageform").submit(handlesubmit);
});
</script>
</body>
Этот код отлично работает в Internet Explorer 9, Firefox и Chrome.Однако в Internet Explorer 7 и Internet Explorer 8 результирующее значение Source
усекается на стороне сервера (источник довольно большой).Мне удалось это исправить, изменив отправку формы вместо $.post()
.
Почему это работает с использованием jQuery Ajax-сообщения, а не обычной отправки формы?Существует ли условие гонки, вызванное отправкой формы до установки значения Source
?Какие части приведенного выше кода выполняются асинхронно - только запрос $.post()
?
ОБНОВЛЕНИЕ: запрос выполняется через POST, а не GET.