Кто знает? AJAX и серверный редирект

Print RSS
305

Д
Author
Пришелец
0
Оценка: синхронный запрос (AJAX) делаем на страницу, страница делает переадресацию (редирект) в конце мы получает страницу на которую был редирект (и это правильно, так и должно быть)
Вопрос: можем ли мы отследить что страница которую мы хотим получаем делает перенаправление
Необходимо понять ту ли мы страницу получили или мы получили другую страницу на которую сделали переадресацию

Кто здесь знает, или кому что есть сказать, подскажите ?

Чатланин
0
По HTTP коду ответа. Если код 200 то это та самая страница, а если 301 или 302 то редирект
Д
Author
Пришелец
0
2. shilo, ответ всегда 200, похоже в AJAX это нельзя никак узнать =((

Чатланин
0
3. Arhitector,
Ты что-то делаешь не так
request=new XMLHttpRequest();
if(request.status>=200 && request.status<300){

}
как-то так
Д
Author
Пришелец
0
4. shilo, абстрактно ф-ция ajax_open - делает синхронный запрос

1) ajax_open('page_1');

2) страница page_1:
header("Location: page_2"); // делает перенаправление

3) запрос ajax_open вернет именно page_2 а не page_1 - вот эту не состыковку нужно отследить

в onReadyStateChange - запрос отправлен и пришел ответ, проверяются readyState = 4 и status = 200, тут все верно, проблема в том что ajax всегда возвращает последний результат даже если 1000 перенаправлений будет он вернет page_1000, вот этот момент с перенаправлением на сервере нужно как-то попробывать отследить, если вобще как-то возможно
А

Оранжевые штаны
0
Нестандартная у тебя функция
Д
Author
Пришелец
0
6. Башка, а что не стандартного ? подскажи как правильно =)

Пришелец
0
Сенхронные запросы не рекомендуется использовать. Используй Асинхронные. В твоем случае все делается с помощью двух Ajax запросов, и без лишаковых перезагрузок страницы.
В прочим поздно уже, спать я ложусь. Да и стела пока текст наберешь, окочанеть можно)
Д
Author
Пришелец
0
8. JaKazanova, да спасибо за ответ, уже придуман очень хороший способ отследить редирект на сервере
Stickers / Tags / Rules / Top topics / Top Posts / Search