Lo que quiero hacer es detectar un error 302 que significa que un usuario no ha iniciado sesión, y luego redirigir a ese usuario a la página de inicio de sesión del sitio web. Aquí está mi Backbone.js anulación de sincronización en este momento:Capturando 302 error y redirigiendo en backbone.js método de sincronización reemplaza
parentSynchMethod = Backbone.sync
Backbone.sync = (method, model, success, error) ->
try
parentSynchMethod.apply(Backbone, arguments)
catch error
window.location.replace("http://localhost:8080/login")
El error 302 es, sin duda pasando, lo puedo ver en la vista de red cuando examino la página utilizando Google Chrome. Sin embargo, cuando establezco un punto de interrupción, nunca entra dentro de la captura, y el argumento de error no está definido. ¿Esto es porque 302 no es un error real (es amarillo cuando veo el estado de la respuesta, en lugar de un rojo habitual para los errores, o estoy estropeando el código en alguna parte)
Gracias por la respuesta, y su solución casi funciona. Obtengo un estado de 200 para xhr.status. Solo un archivo application/json arroja el error 302 y el método iniciador es jquery.min.js si algo de eso ayuda. EDITAR: También está siendo lanzado en un POST. – prashn64
@ prashn64: No veo que se arroje nada y puedo obtener un 302 en 'xhr.status'. Has llevado esto a otro lado y has solucionado las cosas, ¿correcto? –
Ahh, sí, decidí hacer las cosas de forma un poco diferente usando las rutas de los motores de las aplicaciones de Google. Explicaré mi solución la próxima semana. – prashn64