Два вопроса по 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-запросами? По крайней мере я не смог найти решения проще чем пытаюсь реализовать. Надеюсь на вашу помощь. |
уже накопал своими силами, что нужно добавить обработчик ответа сервера, но вот как именно и что там обрабатывать - чтобы заставить браузер "распарсить" новую страницу, пришедшую в ответе?
Гуру, где вы? :) |
|
первый сайт весь перечитал несколько раз
Единственное что оттуда вынес полезного - это как создать xmlhttprequest. Да еще описаны своиства и методы. А как с ними работать - примеров вообще нет. Только по open да send. Порылся в нете - такое ощущение - что на других сайтах просто скопипастено содержимое http://xmlhttprequest.ru/ А хотелось бы побольше примеров :( По второй ссылке: там еще меньше информации в примерах, и самое главное, цитирую: Цитата:
Хотелось бы побольше |
Pluto,
страницы неработающие приведите, мы не умеем по облакам гадать. |
Страницы работают прекрасно. :)
Не работает мой скрипт на стороне клиента. А точнее, я не знаю, с какой стороны подступиться к ответам сервера, поскольку серверную часть писал не я и она ничего не знает о моем скрипте :) Мне просто хотелось чтобы привели реальные примеры работы со своиствами и мметодами XMLHTTPRequest а не то что есть на http://xmlhttprequest.ru и клонированных с него ресурсах. И если с первым вопросом я разобрался самостоятельно, то вот что делать со вторым вопросом, в котором в ответ на POST запрос приходит в ответ за-gzip-леная новая страничка я ума не приложу. Как заставить браузер ее обработать? В принципе я решил свою задачу другим способом, но в идеале хотелось бы до конца разобраться со случаем xmlhttprequest |
Какие примеры вам нужны? Делаете запрос, получаете ответ. Всё. Дальше делаете с этим ответом, что вам угодно, XHR это не касается.
|
Цитата:
Вот именно примеры этого "что угодно" мне и нужны. потому что я не знаю что и как сделать с ответом :( |
Часовой пояс GMT +3, время: 20:59. |