У меня есть 3 функции AJAX для перемещения данных между приложением Django на моем веб-сайте и некоторым JavaScript с использованием YUI в браузере. Между ними нет существенной разницы с точки зрения их структуры, концепции, кода и т. Д. 2 из них работают нормально, но в третьем я получаю один ложный HTTP-запрос сразу после намеченного запроса. Его POST-данные содержат подмножество POST-данных предполагаемого запроса. Метаданные запроса идентичны за исключением CONTENT_LENGTH (очевидно) и CONTENT_TYPE, который является 'text / plain; charset = UTF-8 'для предполагаемого и' application / x-www-form-urlencoded 'для нежелательного запроса. Я вообще не устанавливаю тип контента явно, что говорит о том, что оба запроса не имеют одинакового происхождения, а второй просто выскакивает из воздуха.
Предполагаемый запрос устанавливает HTTP_CACHE_CONTROL ':' no-cache 'и' HTTP_PRAGMA ':' no-cache ', ложный - нет. Вывод журнала сервера разработки для обоих запросов:
[15/Feb/2010 15:00:12] "POST /settings/ HTTP/1.1" 200 0
Что означает последний 0 в конце? Не могу найти документацию по этому вопросу. Это значение обычно не равно нулю ... В Apache это общий размер ответа сервера в байтах, кто-то может подтвердить, что он одинаков для Django?
Моя проблема, очевидно, состоит в том, чтобы выяснить, откуда поступил этот дополнительный запрос.
Я довольно хорошо знаком с отладкой JS с использованием Firebug и думаю, что хорошо разбираюсь в Python и Django, но я не очень разбираюсь во внутренних особенностях HTTP-запросов и ответов. Я могу установить точку останова и пройти через код JS, который отправляет намеченный запрос XMLHTTP, но эта точка останова не получает снова.
Проблема возникает как с FF3, так и с Safari, я на Snow Leopard, поэтому я не могу тестировать IE или Chrome
Я смотрел на методы и инструменты отладки Django, такие как http://robhudson.github.com/django-debug-toolbar/, но, думаю, у меня уже есть информация, которую они могут мне дать.
Может кто-нибудь посоветовать стратегию или инструмент для решения проблемы?