Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XMLHttpRequest, не показывает самых первых хедеров 
:(
    Опции темы
Kefir
Дата 3.10.2006, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: нет
Всего: 87



В общем суть скрипта - послать запрос на сайт X, получить хедеры и выдрать из них нужный.
Как я это пытаюсь сделать:
Код

onUpdateInfo: function() {
    var xmlReq = new XMLHttpRequest();
    xmlReq.open('GET', 'http://site.com', true); // ставил и HEAD - одна малина (что неудивительно :))
    xmlReq.onreadystatechange = function(aEvt) {
          if(xmlReq.readyState == 3) { // проверка - если зедеры загружены - вывести из через алерт
            alert(xmlReq.getAllResponseHeaders());
            return;
          }
    };
    xmlReq.send(null);
}

Этот код у меня стоит на кнопке. Проблема заключается в том, что первый ответ с сайта содержит в себе замечательный хедер Location - его то мне и надо выдрать. Однако ответ на первый запрос не alert'ится (а Location именно в первом ответе). Т.е. алерт у меня начинает выскакивать и показывать ответы только со второго ответа. В принципе обычный диалог браузера и вайта выглядит так:

Цитата

http://site.com/index.php?blah-blah


GET /index.php?blah-blah HTTP/1.1
Host: site.com
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.8.0.7) Gecko/20060921 Ubuntu/dapper-security Firefox/1.5.0.7
Accept: xxx
Accept-Language: xxx
Accept-Encoding: xxx
Accept-Charset: x
Keep-Alive: xxx
Connection: xxx
Cookie: xxx

//// Вот этот ответ и не попадает ко мне из XMLHttpRequest
HTTP/1.x 302 Moved Temporarily
Date: Mon, 02 Oct 2006 19:32:32 GMT
Server: xxx
X-Powered-By: xxx
Set-Cookie: xxx
Location: http://site.com/index.php?other-blah-blah
Content-Encoding: xxx
Vary: xxx
Content-Length: xxx
Content-Type: xxx
X-Cache: xxx
X-Cache-Lookup: xxx
Connection: xxx
----------------------------------------------------------

http://site.com/index.php?other-blah-blah


GET /index.php?other-blah-blah
Host: site.com
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.8.0.7) Gecko/20060921 Ubuntu/dapper-security Firefox/1.5.0.7
Accept: xxx
Accept-Language: xxx
Accept-Encoding: xxx
Accept-Charset: xxx
Keep-Alive: xxx
Connection: xxx
Cookie: xxx


HTTP/1.x 200 OK
Date: Mon, 02 Oct 2006 19:32:32 GMT
Server: xxx
X-Powered-By: xxx
Set-Cookie: xxx
Content-Encoding: xxx
Vary: xxx
Content-Length: xxx
Content-Type: xxx
X-Cache: xxx
X-Cache-Lookup: xxx
Connection: xxx

etc... (тут ещё на css запрос и подобное)


Что делать-то?
PM MAIL WWW Skype   Вверх
Sardar
Дата 4.10.2006, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



По идее никак, XMLHttpRequest  был так задуман, оградить программиста от лишней возни с редиректами и прочим, потому редиректа ты не получишь.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Kefir
Дата 4.10.2006, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: нет
Всего: 87



/* но ведь ответ есть! почему он ко мне не приходит? гррр... /me зол на XMLHttpRequest... */

ну хорошо, а если отбросить этот пресловутый XMLHttpRequest и посмотреть в общем - как можно через JS получить этот редирект? именно JS, возможности использовать какой-либо другой язык не имею (стал бы я с js возится, если бы была возможность пхп, например, юзать)
или гиблое это дело?

может как-то можно получить запросы, которые отправлял XMLHttpRequest (там ведь в строке "GET blah-blah" содержится то что мне надо)? или такого функционала тоже нет (спрашиваю так, без надежды, т.к. w3c я пропахал вдоль и поперёк).

и кстати, на этом w3c, на страничке The XMLHttpRequest Object в разделе 1.5. Not in this Specification есть такие слова: Property to disable following redirects;. Буду благодарен за любой материал по поводу выделенного.
PM MAIL WWW Skype   Вверх
Sardar
Дата 5.10.2006, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Посмотрел, нет никак.

Цитата(Kefir @  4.10.2006,  20:10 Найти цитируемый пост)
и кстати, на этом w3c, на страничке The XMLHttpRequest Object в разделе 1.5. Not in this Specification есть такие слова: Property to disable following redirects;.

Ну вопервых XMLHttpRequest адоптирован W3C как неизбежность, уж больно мелкософтовцы хорошо его придумали. Во вторых сейчас они хотят расширить его функционал, потому упомянули фичи, что некоторые браузеры (уже/не)реализовали.

ИЕ точно не поддерживает перехват редиректов.
На встречу: а зачем этот гем*ррой, почему сервер не может отдавать ссылку просто инфой, а не вырезать  её из редиректа? Просто выглядит это всё уж больно не на свежую голову продуманным smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Kefir
Дата 5.10.2006, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: нет
Всего: 87



Цитата(Sardar @  5.10.2006,  09:12 Найти цитируемый пост)
почему сервер не может отдавать ссылку просто инфой

в каком смысле "просто инфой"? я просто чтобы было совсем ясно скажу - сайт выдаёт ссылку только в хедерах на самой странице (на которцю пришёл редирект). упоминания ссылки нет. или ты что-то другое имел в виду?
если есть какой-то другой способ узнать ссылку по которой мы пришли - я буду рад. XMLHttpRequest я начал использовать исключительно из-за того, что больше способов не нашёл.


Цитата(Sardar @  5.10.2006,  09:12 Найти цитируемый пост)
ИЕ точно не поддерживает перехват редиректов.

меня интересует исключительно ФФ, но в доках ничего про обрезание редиректов в ФФ не нашёл.

Это сообщение отредактировал(а) Kefir - 5.10.2006, 10:07
PM MAIL WWW Skype   Вверх
Sardar
Дата 5.10.2006, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Kefir @  5.10.2006,  08:20 Найти цитируемый пост)
я просто чтобы было совсем ясно скажу - сайт выдаёт ссылку только в хедерах на самой странице (на которцю пришёл редирект) упоминания ссылки нет. или ты что-то другое имел в виду?

Долго думал...  Есть сайт, что при обращении кидает редирект на конкретную страницу, отдавая в хедерах также URL (refferer) откуда мы зашли, верно? Но ведь XMLHttpRequest не отсылает reffer'ов, это просто новый опрос сервера, как будто в адресной строке ты вбил и открыл браузером.

Отдать инфой, это значит на сервере при получении параметра ajax=1 сервак отдаст ссылку редиректа как:

<?xml version="1.0" encoding="utf-8"?>
<redirect><!CDATA[http://blabla...]]></redirect>

И ни тебе лишних проблем и работать будет везде.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Kefir
Дата 5.10.2006, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: нет
Всего: 87



сайт отдаёт ссылку только в хедере Location. этот хедер отсылаетса толко один раз (в первом ответе). далее в хедерах нет никакого упоминания о том куда мы идём/пришли. реферера в ответах сайта нет (см. первый пост - там реалный диалог с сайтом выдранный мною при помоши LiveHTTPHeaders (Firefox addon)).


Цитата(Sardar @  5.10.2006,  09:31 Найти цитируемый пост)
Отдать инфой, это значит на сервере при получении параметра ajax=1 сервак отдаст ссылку редиректа как:

такой возможности нет, так как не могу я править всё ето дело - доступа нету.  smile 
PM MAIL WWW Skype   Вверх
Sardar
Дата 5.10.2006, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Правильно ли я понял что сервер не твой?
По сабжу: по прежнему не реально smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Kefir
Дата 5.10.2006, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: нет
Всего: 87



Цитата(Sardar @  5.10.2006,  21:05 Найти цитируемый пост)
Правильно ли я понял что сервер не твой?

угу  smile 


Цитата(Sardar @  5.10.2006,  21:05 Найти цитируемый пост)
По сабжу: по прежнему не реально

эээх... ну что за жизнь такая?..
тему можно считать закрытой.
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.