3

У меня есть две страницы, например, pageA и pageB.Метеоритный сеанс сбрасывается в IE 9 после перехода на другую страницу через iron-router

В страницаА, я установил значение в сессии

var student = { 
    studentNumber: 'ABCDEF' 
} 
Session.set('student', student); 
var s = Session.get('student'); // returns an Object 
console.log(s); 
Router.go('pageB'); // navigate to pageB 

Я могу видеть сессии (объект студента) был установлен правильно.

В щелкнутыми случае в страницаБ,

var student = Session.get('student'); 
if (typeof student === 'undefined') { 
    console.log('student object is undefined'); 
    return; 
} 

По некоторым причинам, сеанс был сброшен в IE 9. Эта проблема возникает только в IE 9, а не в IE 10/11, Chrome, Safari.

Я заметил в IE 9. Кажется, что страница (например, pageB) была перезагружена, когда мы используем Router.go('pageB'); для перехода к. Это имеет значение?

Заранее спасибо.

Джейк

+0

У меня такая же проблема - вы нашли решение? –

+0

@ RacingTadpole, к сожалению, я этого не сделал. Возможно, это проблема железного маршрутизатора. –

+0

@RacingTadpole BTW, я использую HTML5 'sessionStorage' в качестве обходного пути. –

ответ

1

Оказывается, что IE8 и IE9 не pushState, поэтому Iron маршрутизатор не поддерживает переменные при изменении URL этих браузеров.

Существует обсуждение проблемы и возможных обходных путей на github here.

Похоже, что наиболее полным решением является добавление HTML5-History-API к вашему проекту; согласно приведенной выше ссылке, все должно работать (хотя я сам этого не пробовал).

В качестве альтернативы, как вы уже нашли, вы можете использовать sessionStorage, чтобы сохранить информацию между обновлениями за один сеанс.

+0

Спасибо, что расследовали это. –