Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Opera не получает AJAX ответа при использовании Redirect

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Странно, но строка как будто бы и не отсылается...
SergeantPEPPER
Отправлено: 28 Февраля, 2008 - 18:35:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


Помог: 0 раз(а)




И снова здравствуйте!

Оговорюсь сразу, речь идет о другом АЯКС запросе, не о том, о котором я спрашивал вас ранее. Т.е. здесь нет никаких проблем с кодировками, т.к. в GET передаются только числа.

Вопрос: через АЯКС я обращаюсь к серверному скрипту, он выдает какую-то строку. Все работает нормально. Однако, как только в скрипте я делаю Redirect (перенаправление через Location) на другой скрипт Opera не получает от него ответа.

Немного подробнее: в скрипте проверяется условие, в случае true остаемся в этом же скрипте и передаем клиенту окончательную строку, если false - то строку (из этого скрипта) клиенту не передаем и делаем Редирект на другой скрипт (по относительной ссылке), который в конце передает строку клиенту. Вот,,, в IE эта штука работает исправно, а вот Opera ведет себя странно: получается так, что когда Редиректа нет, то она строку получает, а когда он есть - строки нет.

Если знаете, что это за болезнь, подскажите, пожалуйста. Буду ну ОЧЕНЬ признателен.
 
 Top
evgenijj
Отправлено: 28 Февраля, 2008 - 19:10:31
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Гм... Ну и вопросы у тебя. С моей точки зрения редирект в скрипте, отдающий клиенту (браузеру) результат работы вообще не должен посылать заголовок типа Location. Почему у тебя это работает - вообще не понятно. Разумеется, ИМХО.
 
 Top
SergeantPEPPER
Отправлено: 28 Февраля, 2008 - 20:06:19
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


Помог: 0 раз(а)




Нет, серверный скрипт отдает клиенту результат работы только в том случае, если в нем не происходит редирект. А если он произошел, то скрипт останавливается и происходит переход на другой скрипт. Вот именно этот последний скрипт и отдаст результат своей работы. Почему же это не логично?

И я вот еще чего не понял: заголовок Location посылается откуда и куда (я наверное не очень хорошо знаю эту тему...)

P.S. Делать или не делать редирект у меня решает условная конструкция...
 
 Top
valenok
Отправлено: 28 Февраля, 2008 - 21:22:56
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




if()
else echo "<script>document.location='xyz.com'; ";


-----
Truly yours, Sasha.
 
My status
 Top
evgenijj
Отправлено: 28 Февраля, 2008 - 22:41:17
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




SergeantPEPPER пишет:
заголовок Location посылается откуда и куда (я наверное не очень хорошо знаю эту тему...)

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

А почему так сложно?
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( ... ) {
  3.   echo 'someResponse';
  4. } else {
  5.   // Здесь исходные коды другого скрипта
  6.   echo 'otherResponse';
  7. }
 
 Top
SION-ZENIT
Отправлено: 28 Февраля, 2008 - 22:44:47
Post Id


Частый гость


Покинул форум
Сообщений всего: 148
Дата рег-ции: Июль 2007  
Откуда: SPb


Помог: 0 раз(а)




Я тоже думаю, что это не должно работать, ведь заголовок посылается в браузер, а не перекидывает на другой скрипт. Возможно проще будет включить скрипт, на который ты хочеш переслать с помощью requre_once();, он выполнит нужные команды а потом выйти.
-----
evgenijj немного опередил Улыбка

(Отредактировано автором: 28 Февраля, 2008 - 22:47:41)

 
 Top
evgenijj
Отправлено: 28 Февраля, 2008 - 22:56:31
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Я бы даже сказал больше. Обработка ответа от сервера происходит примерно так
PHP:
скопировать код в буфер обмена
  1.  
  2. // Функция, выполняемая при изменении статуса
  3. // запроса, если статус  равен 200, данные получены
  4. function processReqChange() {
  5.   if(req.readyState == 4) {
  6.     if(req.status == 200) {
  7.       // Здесь мы что-то делаем с полученными данными
  8.     } else {
  9.       alert("There was a problem retrieving the XML data:\n" + req.statusText);
  10.     }
  11.   }
  12. }
  13.  

Действия выполняются, если код ответа сервера 200. В случае использования заголовка Location код ответа:
303 See Other
Затребованный URI можно найти по другому URI (указанному в заголовке Location). Его следует выбрать методом GET по данному ресурсу.
 
 Top
SergeantPEPPER
Отправлено: 29 Февраля, 2008 - 17:55:03
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


Помог: 0 раз(а)




Спасибо за советы.

На самом деле я спросил довольно глупый вопрос про откуда и куда, но это я понял только спустя несколько часов Улыбка

Проблему решил вообщем так, как и советовали evgenijj и SION-ZENIT.
Теперь проблема исчерпана, благодарю)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB