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, вот этот момент с перенаправлением на сервере нужно как-то попробывать отследить, если вобще как-то возможно