W mojej aplikacji opartej na Backbone.js mówię do mojego API, które odpowiada 401 w przypadku, gdy podstawowe żądanie zostało wykonane bez lub z nieważnym tokenem uwierzytelniania. Chciałbym to udowodnić, przechodząc na stronę #login, za każdym razem, gdy 401 jest odbierane.Howto cleanly fetch 401 w aplikacji opartej na Backbone.js
Aby pobrać 401 z powodzeniem owinąłem Backbone.sync, ale w tym momencie utknąłem. Próbowałem kilka strategii tutaj:
throw 'unauthorized'
w Backbone :: synchronizacji i spróbuj pobrać w moim routerze. Nie powiodło się: „Uncaught nieuprawnione”Próbując
#.navigate '#login'
w Backbone :: sync, który nie tylko wygląda dziwnie, ale przychodzi z problemem, że moja aplikacja jest oparte na AMD/require.js i po prostu nie mogę uzyskać dostępu do Backbone .Routeruj instancję w mojej opakowanej funkcjisync
.
Jedynym rozwiązaniem widzę tak daleko byłoby stworzenie „dostępne globalnie” obiekt buforowania, że Pobiera odwołanie do mojego routera instancji z kolei jest wprowadzane do define
jako zależność gdzie jest to potrzebne. Ten obiekt pamięci podręcznej musiał być singletonem i zepsuł całą moją strategię "please-no-globals-and-no-namespaces".
Trochę utknąłem tutaj. Czy każdy może wskazać mi bardziej czyste rozwiązanie tego powszechnego problemu?
Undestood. Mogłabym zrobić to samo window.location = ... w synchronizacji, gdzie pobieram tę odpowiedź. Dobry pomysł. Myślałem o czystym podejściu, musiałbym skorzystać z routera. Ale to brzmi jak dobre rozwiązanie. Dziękuję Anrei – GeorgieF