Co chcę zrobić, to złapać błąd 302, co oznacza, że użytkownik nie jest zalogowany, a następnie przekierować tego użytkownika na stronę logowania do witryny. Oto mój backbone.js synchronizacji nadpisanie teraz:Złapanie błędu 302, a następnie przekierowanie w metodzie synchronizacji backbone.js
parentSynchMethod = Backbone.sync
Backbone.sync = (method, model, success, error) ->
try
parentSynchMethod.apply(Backbone, arguments)
catch error
window.location.replace("http://localhost:8080/login")
Błąd 302 jest zdecydowanie dzieje, widzę go w widoku sieciowym kiedy sprawdzać stronę przy użyciu przeglądarki Google Chrome. Jednak gdy ustawię punkt przerwania, nigdy nie trafi do połowy, a argument błędu jest niezdefiniowany. Czy to dlatego, że 302 nie jest prawdziwym błędem (jest żółty, gdy widzę status odpowiedzi, zamiast zwykłej czerwieni dla błędów, lub gdzieś go pomieszam.)
Dzięki za odpowiedź, a Twoje rozwiązanie prawie działa. Otrzymuję status 200 dla xhr.status. Jest to tylko jeden plik aplikacji/json, który rzuca błąd 302, a metoda inicjatora to jquery.min.js, jeśli któraś z nich pomaga. EDYCJA: Jest również wyrzucane na POST. – prashn64
@ prashn64: Nie widzę niczego, co zostanie rzucone i mogę uzyskać 302 w 'xhr.status'. Zabrałeś to gdzie indziej i załatwiłeś sprawy, prawda? –
Ahh, tak, postanowiłem zrobić coś trochę inaczej, używając tras wyszukiwarki Google, wyjaśnię to rozwiązanie w przyszłym tygodniu. – prashn64