Comment gérer les erreurs de réponse du serveur avec les données de braise
-
Qu'est-ce que la braise-données actuelles de défaut de réponse attendue à partir du serveur si il a obtenu quelque chose d'autre que de 200, de sorte qu'il ne lance pas d'exception non interceptée, mais plutôt l'analyse des erreurs pour l'utiliser plus tard?
par exemple, {"erreurs":{jsonerror}} ???
-
Comment dois-je gérer erreur de serveur réponses (au format json) en Ember?
Merci!
Vous devez vous connecter pour publier un commentaire.
@colymba eu presque droit, mais je vais essayer de faire une réponse plus élaborée de sorte qu'il vous aide à mettre en place et en cours d'exécution plus facile.
Comme déjà mentionné dans le nouveau routeur lifting lorsqu'une tentative est faite à la transition de l'un itinéraire, un des points d'accroche
beforeModel
,model
etafterModel
peut jeter une erreur, ou le retour d'une promesse qui rejette, dans ce cas, unerror
événement sera déclenché sur le partiellement entré route, vous permettant de gérer les erreurs par la route de base.Dans le cas où vous voulez avoir des erreurs sont traitées application large, vous pouvez définir vos propres paramètres par défaut
error
gestionnaire en remplaçant laerror
gestionnaire sur leApplicationRoute
, cela pourrait ressembler à quelque chose comme ceci:Prendre en compte le fait que par défaut, un événement va arrêter de bouillonnement une fois un gestionnaire de défini sur la
events
de hachage gère. Mais pour continuer bouillonnement de l'événement tout le chemin jusqu'à laApplicationRoute
vous devez retournertrue
de gestionnaire, de sorte qu'il peut notifier pluserror
gestionnaire à partir de laquelle vous pouvez alors recommencer à faire la transition à la route avectransition.retry()
.Mise à jour de braise de 1,0 et au-dessus,
Depuis la nouvelle braise de la version 1.0, les
events
de hachage a été renomméactions
. Un itinéraire d'une erreur du gestionnaire doit être dans leactions
de hachage maintenant:Espère que cela vous aide.
error.message
?error
objet? peut-être dans une propriété différente stockéesDS.rejectionHandler
je l'ai utilisé brièvement dans mon projet. Mise à jour de ma réponse en conséquence...Dans le dernier Routeur, les erreurs de remonter vers le Routeur et peut être pris dans le
events: { error: function(error, transition){}}
crochet sur le Routeur qui fonctionne bien lorsqu'il est utilisé avec le
model
crochet sur le Routeur... Voir https://gist.github.com/machty/5647589 pour des détails et des exemples..Edit:
Avec Ember-data, j'ai utilisé une coutume
Voir https://github.com/emberjs/data/blob/master/packages/ember-data/lib/adapters/rest_adapter.js
La
reason
param vous donne accès àreason.responseText
,reason.status
,reason.statusText
etc....