2013-04-29 2 views
0

Я пытаюсь перенаправить мое приложение на свое приложение после того, как я выполнил неатифицированный запрос GET с помощью ajax. Однако, когда я получаю перенаправление (сервер отправляет 303 с /login.html для местоположения), я получаю полный HTML-код login.html в своем ответе при просмотре вкладки Response в консоли firebug (возможно, это нормально, я Не уверен. Затем, просматривая это в firebug, я вижу, что он пытается выполнить перенаправление, но консоль просто вращается над этим действием (никогда не заканчивает его обработку). Я пытался найти некоторую соответствующую информацию в Интернете, и не был успешным, ближе всего я нашел: HERE.Перенаправление после Ajax GET

Вот как я ее обработки в JavaScript:

function doSomethingAwesome() 
{ 
    try 
    { 
    ajaxObject.open("GET", serverLocation+ '?action=getSomeInfo', true); 
    ajaxObject.send(); 
    } 
    catch(err){} 
} 

ajaxObject.onreadystatechange = function() 
{ 
    if(ajaxObject.status == 200 && ajaxUsers.readyState == 4) 
    { 
    do some stuff 
    } 
} 

Мой заголовок ответа имеет следующая информация: 303 See Other Connection: Keep-жив Дата Адрес: /login.html сервер Nginx/1.2.7 Transfer-Encoding: фрагментированное Так функция onreadystatechange не должна реально влиять на редирект (от того, что Я но я думал, что брошу его туда. На самом деле все, что должно происходить здесь, это я говорю с сервером, чтобы загрузить некоторую информацию, он видит, что я не зарегистрирован (будь то GET или POST), и я должен получить перенаправление на страницу входа в систему (которая не работает) t). Извините, если это звучит как бессвязное, я ценю любой совет или помощь, которую кто-либо может предложить.

ответ

1

Проблема в том, что вы перенаправляете запрос ajax, а не переходите к этому новому URL-адресу. Вы должны выполнить перенаправление, изменив window.location.href в функции onreadystatechange.

+0

Идея здесь заключается в том, что сервер будет выполнять мандат и обеспечивать перенаправление по соображениям безопасности. Однако для этого я попытался вручную перенаправить внутри функции onreadystatechange и ничего не изменилось. В консоли firebug я по-прежнему вижу сначала отправляемый GET-запрос, а затем GET «http: // stuff/login.html» с постоянно вращающимся кругом загрузки. Для меня это похоже на то, что он знает, что нужно перенаправлять, но где-то повесился. – Tombo890

+0

@ user1005658, делая 'window.location.href = 'someurl';' обязательно перенаправит, уверены ли вы, что строка будет выполнена? Если это так, возможно, вы столкнулись с циклом перенаправления. – plalx

+0

да, это точно сделает перенаправление. Где мой вопрос лидирует, не должен ли браузер обрабатывать перенаправление 303? Или это то, что я должен наблюдать и вручную вытаскивать местоположение из заголовка и делать перенаправление? Похоже, что страница не была бы действительно защищена, если вам нужно следить за 303 и перенаправлять страницу, любой может установить точку останова и остановить работу javascript, но если да, то как я могу посмотреть на 303? – Tombo890

Смежные вопросы