Показать сообщение отдельно
  #1 (permalink)  
Старый 21.09.2010, 21:33
Интересующийся
Отправить личное сообщение для Pluto Посмотреть профиль Найти все сообщения от Pluto
 
Регистрация: 03.09.2009
Сообщений: 16

Два вопроса по XMLHTTPRequest
Добрый день!
Обращаюсь к гуру JS пользующимися XMLHTTPRequest
Суть в следующем:
Написал JScript, обрабатывающий страницу сайта на стороне пользователя. А именно вытаскивающий из строки типа
<form method='post' class='inline' action='?a=search'><input type='hidden' name='k' value='31638' /><input type='submit'  class='cmd_all' value='ИСКАТЬ ДАЛЬШЕ' ></form>

параметры для POST-запроса.
Вот сам пост запрос:
xmlhttp.open('POST', '/main.php?a=search', false);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send('k=' + code);

С помощью HTTPAnalyzer-а определяю, что если нажать на кнопочку отправки формы мышкой запрос проходит и далее следует ответ сервера 302 с RedirectURL по которому потом проходит дополнительный запрос GET и обновляется страница браузера!
Вопрос: как мне получить этот ответ чтобы потом отправить на сервер GET-запрос?

Случай два.
Предистория та же. Такой же код формы на странице.
НО! после анализа логов запроса в HTTPAnalyzer-е видно, что в этом запросе никакого редиректа не приходит и дополнительного запроса GET к серверу нет! Однако страница после отправки формы нажатием на кнопочку благополучно обновляется. На мою же отправку POST-запроса приходит ответ 504 - Gateway Timeout
Путем анализа лога моего запроса и запроса "штатного" выяснил только одно расхождение в отправке
у меня передается:
Content-Transfer-Encoding: binary
в "штатном" запросе такого нет, зато в ответе есть следующее:
Content-Encoding: gzip
и соответсвенно пириходит содержимое новой страницы, отображаемое в браузере.
Вопрос: что мне добавить в мой POST-запрос чтобы получить корректный ответ?

И бонусом - может кто то знает как можно отправить данные формы из Javascript более простым способом?
т.е. как бы "сэмулировать" нажатие кнопки или что то подобное.
С get-запросами то я естественно не мудрствуя лукаво делаю
window.location.href = "main.php?a=search&k=" + code;

и дело в шляпе, а вот как быть с POST-запросами?
По крайней мере я не смог найти решения проще чем пытаюсь реализовать.

Надеюсь на вашу помощь.
Ответить с цитированием