У меня есть приложение для ember с рельсами.Запрос на повторный запрос от данных Ember
У меня есть конкретная ошибка, которую Rails может вернуть (401), что я хотел бы, чтобы Ember поймал и действовал. В этом случае я хотел бы выполнить пользовательский метод (который существенно изменяет файл cookie запроса), а затем снова делает запрос.
Прямо сейчас я ломаю эту ошибку на маршрутизаторе верхнего уровня и заставляю все приложение перезагрузить с помощью window.location.reload(). Очевидно, это ужасный взлом. Мне не удалось заставить router.refresh() работать, но это все равно будет хак.
В идеале я бы поймал это гораздо ближе к адаптеру, чтобы я мог действовать на нем. Возможно, я мог бы поймать это вместо этого на уровне адаптера, переопределив handleResponse(), но как я могу отложить запрос оттуда?
http://emberjs.com/api/data/classes/DS.RESTAdapter.html#method_handleResponse handleResponse действительно проходит вдоль requestData, но мне нужен какой-то способ выполнить запрос в контексте методов адаптера, правильно?
Я полагаю, что ваш сервер возвращает 401, когда пользователь не настроен на произвольный запрос, я прав? Если да, расскажите, как вы справляетесь с авторизацией: используете ли вы ember-simple-auth или что-то еще? –
Я закатил свое собственное решение auth. Я храню некоторые метаданные пользователя в локальном хранилище. Кроме того, Rails поддерживает сеанс. Эта проблема возникает, когда сеанс рельсов истек, а локального хранилища нет. Этот дизайн определенно не является лучшим решением (я думаю, что в конечном итоге я удалю часть локального хранилища), но вот как это работает сейчас. – Jono