|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как обработать редирект top.location в delphi
После отправки данных методом POST в IdHTTP(Indy)
Код:
IdHTTP.HandleRedirects := true; Response := IdHTTP.Post('http://someUrl.ru/', LoginInfo); Код:
<html> <head> <meta http-equiv="Content-type" content="text/html; charset=windows-1251"> </head> <body> <script language="javascript"> document.domain = 'домен'; top.location = 'урл который перенаправляется во всех браузерах, но не в Indy'; </script> </body> </html> А сам статус в ResponseHeader-е выдает HTTP/1.0 200 OK Вопрос. Как мне обработать этот редирект??? Помогите пожалуйста, уже неделю головой бьюсь. P.S. Delphi 2010, Indy 10.5 |
#2
|
||||
|
||||
тут все честно со стороны Indy - он отправил Post-запрос и возвратил Response в виде html-странички. недаром "HTTP/1.0 200 OK" говорит о том, что все в порядке. что содержится в ней (страничке) Indy все-равно. он понятия не имеет что такое javascript, ему не ведом объект window и его свойства top и location. поэтому никакого редиректа быть и не должно. а позаботится об этом должен сам разработчик. одним из способов является поиск в html-коде строки "top.location" и вытаскивание из нее url. думаю Pos и Copy буит достаточно.
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
Цитата:
Да, это все верно, но в некоторых случая помогает IdHTTP1.HandleRedirects := True; |
#4
|
||||
|
||||
HandleRedirects = True нужен для автоматического редиректа при ответе "HTTP/1.0 30х". при этом поле "Location" http-заголовка содержит url адрес перенаправления. это никак не связано с window.top.location
Пишу программы за еду. __________________ |