Очистите HTML перед отправкой страницы в jQuery - PullRequest
0 голосов
/ 27 октября 2011

Мне нужно взять 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.

1 Ответ

1 голос
/ 27 октября 2011

Нет, нет условий гонки.Строка запроса просто ограничена по длине.Если вы отправляете большой объем данных, вы должны использовать метод POST (который помещает данные в тело запроса).

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