2014-11-24 2 views
0

У меня есть html что-то вроде этого от http://fromDomain.com и размещение на http://toDomain.com, которое является рельсовым приложением.перекрестный домен после обновления очищает значения сеанса

<html> 
    <h1>Test Redirect with Post</h1> 
    <button id="submit" onclick="send_form()">Submit</button> 

    <script> 
    function send_form() { 
     var form = document.createElement("form"); 
     form.setAttribute("method", 'post'); 
     form.setAttribute("action", 'http://todomain.com/someaction'); 
     form.appendChild(addElement('field1', 'field1')); 
     form.appendChild(addElement('field2', 'field2)'); 
     document.body.appendChild(form); 
     form.submit();} 

    function addElement(key, value){ 
     var hiddenField = document.createElement("input"); 
     hiddenField.setAttribute("type", "hidden"); 
     hiddenField.setAttribute("name", key); 
     hiddenField.setAttribute("value", value); 
     return hiddenField;} 
    </script> 
    </html> 

В приложении rails я делаю что-то вроде этого.

def someaction 

if not session[:token] 
session[:token] = @self.getsomehash 
end 
end 

Проблема после того, как загружается страница http://todomain.com/someaction если пользователи хитов обновления браузера, то он будет повторно опубликовать страницу и сессионный хэш получить сброс. Похоже, я, когда браузеры репозиториев репозитория создают новый сеанс, а затем используют существующий.

Является ли мое предположение правильным? Есть ли способ разрешить обновление и по-прежнему сохранять значения в любом случае?

+0

Я не очень хорошо знаком с средой размещения RoR, но файлы cookie сеансов cookie (переходные файлы cookie) обычно хранятся в пользовательском агенте для идентификации посетителя в этих ситуациях. Этот механизм должен быть независимо от того, как RoR осуществляет управление своим состоянием, на стороне сервера. какой браузер вы используете? –

+0

можете ли вы использовать режим разработчика вашего браузера, чтобы определить, что ваш браузер хранит cookie сеанса для , когда он впервые посещает страницу/сайт после первого сообщения? .. .. он должен иметь значение домена (Scope), связанное с файлом cookie сеанса, если создается первый куки-файл сеанса, указывает ли это как домен ?. –

+0

Я использую Chrome, и я могу использовать любой браузер для тестирования, если вы его порекомендуете. Я также проверю область домена. – NMK

ответ

0

Похоже, вам нужен шаблон Redirect-on-POST - в основном вам нужно настроить приложение-сервер для отправки перенаправления в ответ на каждый запрос POST.

+0

Спасибо и позвольте мне узнать больше об этой теме. – NMK

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