Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.06.2011, 21:18
inconnect inconnect вне форума
Прохожий
 
Регистрация: 15.06.2011
Сообщения: 1
Репутация: 10
По умолчанию Как обработать редирект top.location в delphi

После отправки данных методом POST в IdHTTP(Indy)
Код:
IdHTTP.HandleRedirects := true;
Response := IdHTTP.Post('http://someUrl.ru/', LoginInfo);
Получаю в Response вот это чудо:
Код:
<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  
Старый 16.06.2011, 08:49
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

тут все честно со стороны Indy - он отправил Post-запрос и возвратил Response в виде html-странички. недаром "HTTP/1.0 200 OK" говорит о том, что все в порядке. что содержится в ней (страничке) Indy все-равно. он понятия не имеет что такое javascript, ему не ведом объект window и его свойства top и location. поэтому никакого редиректа быть и не должно. а позаботится об этом должен сам разработчик. одним из способов является поиск в html-коде строки "top.location" и вытаскивание из нее url. думаю Pos и Copy буит достаточно.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 20.06.2011, 00:30
lux16 lux16 вне форума
Прохожий
 
Регистрация: 28.08.2010
Сообщения: 22
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
тут все честно со стороны Indy - он отправил Post-запрос и возвратил Response в виде html-странички. недаром "HTTP/1.0 200 OK" говорит о том, что все в порядке. что содержится в ней (страничке) Indy все-равно. он понятия не имеет что такое javascript, ему не ведом объект window и его свойства top и location. поэтому никакого редиректа быть и не должно. а позаботится об этом должен сам разработчик. одним из способов является поиск в html-коде строки "top.location" и вытаскивание из нее url. думаю Pos и Copy буит достаточно.

Да, это все верно, но в некоторых случая помогает IdHTTP1.HandleRedirects := True;
Ответить с цитированием
  #4  
Старый 20.06.2011, 09:29
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

HandleRedirects = True нужен для автоматического редиректа при ответе "HTTP/1.0 30х". при этом поле "Location" http-заголовка содержит url адрес перенаправления. это никак не связано с window.top.location
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:59.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter