Добрый день!
Обращаюсь к гуру 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-запросами?
По крайней мере я не смог найти решения проще чем пытаюсь реализовать.
Надеюсь на вашу помощь.