Quello che voglio fare è catturare un errore 302 che significa che un utente non ha effettuato l'accesso e quindi reindirizzare quell'utente alla pagina di accesso del sito. Ecco il mio backbone.js esclusione di sincronizzazione in questo momento:Catching 302 error e quindi reindirizzamento nel metodo di sincronizzazione backbone.js override
parentSynchMethod = Backbone.sync
Backbone.sync = (method, model, success, error) ->
try
parentSynchMethod.apply(Backbone, arguments)
catch error
window.location.replace("http://localhost:8080/login")
L'errore 302 è sicuramente accadendo, posso vederlo nella vista di rete quando ho ispezionare la pagina utilizzando Google Chrome. Tuttavia, quando imposto un punto di interruzione, non entra mai nell'intersezione e l'argomento dell'errore non è definito. Questo perché 302 non è un errore reale (è giallo quando visualizzo lo stato della risposta, invece di un normale rosso per errori o sto incasinando il codice da qualche parte.
Grazie per la risposta, e la soluzione quasi funziona. Sto ottenendo uno stato 200 per xhr.status. È solo un file application/json che genera l'errore 302 e il metodo initiator è jquery.min.js se ciò è di aiuto. EDIT: è anche essere gettato su un post. – prashn64
@ prashn64: Non vedo niente lanciare e posso ottenere un 302 in 'xhr.status'. L'hai portato altrove e hai sistemato le cose, giusto? –
Ah, sì, ho deciso di fare le cose in modo un po 'diverso usando le rotte del motore delle app di google, spiegherò la mia soluzione la prossima settimana. – prashn64