Partage
  • Partager sur Facebook
  • Partager sur Twitter

ajax pour traitement des erreur

traitement et affichage par javascript d'un gestionnaire d'erreur PHP

Sujet résolu
    21 novembre 2017 à 20:46:47

    Bonjour,

    Mon "problème", brièvement:

    J'ai bricolé un gestionnaire d'erreur PHP (non non, ce n'est pas le sujet) qui fonctionne très bien en me basant sur les patterns observers du cours à cette page:

    https://openclassrooms.com/courses/programmez-en-oriente-objet-en-php/les-design-patterns

    Là dessus, j'ai bricolé un Output qui me sort l'erreur en JSON pour les réponses AJAX et qui ressemble à:

    {'xErr':true,'xMsg':'Erreur blablabla ligne 32 fichier machin.truc'}

    Rien de plus simple!

    Ce que je voudrais faire, c'est une petite fonction en javascript, ou jquery encore mieux, qui me permette de "capter" le xErr pour tout envoi AJAX de façon à interrompre le script après avoir affiché l'erreur.

    J'ai essayé des trucs avec ajaxSuccess, ajaxComplete; je n'arrive pas à interrompre le script qui vient après...

    $.ajaxComplete(function(reponse){
     if(reponse.xMsg!==null) {
      alert(reponse.xMsg);
      return false;
     }
    })
    $.post('file.php',{datas:datas},function(reponse){
      // on execute la fonction que si ajaxComplete n'a rien à signaler
    }



    ajaxError? Je n'attends pas spécialement d'erreur ajax mais peut-être peut-on bricoler l'en-tête du document?

    des idées?...

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      21 novembre 2017 à 21:18:37

      Salut,

      As tu regarder au niveau du jqXHR? 

          error: function (jqXHR, exception) {
              var msg = '';
              if (jqXHR.status === 0) {
                  msg = 'Not connect.\n Verify Network.';
              } else if (jqXHR.status == 404) {
                  msg = 'Requested page not found. [404]';
              } else if (jqXHR.status == 500) {
                  msg = 'Internal Server Error [500].';
              } else if (exception === 'parsererror') {
                  msg = 'Requested JSON parse failed.';
              } else if (exception === 'timeout') {
                  msg = 'Time out error.';
              } else if (exception === 'abort') {
                  msg = 'Ajax request aborted.';
              } else {
                  msg = 'Uncaught Error.\n' + jqXHR.responseText;


      Je ne sais pas si ça peut t'aider.

      • Partager sur Facebook
      • Partager sur Twitter
        22 novembre 2017 à 19:01:44

        Bonjour Acate,

        En fait, les erreurs propre à l'envoi/reception AJAX je les gère différemment.

        Ce qu'il me faut, en résumé, c'est que le code affiche l'erreur envoyée PAR le gestionnaire d'erreur PHP uniquement. J'ai besoin qu'il intercepte la clé xMsg (ou xErr, peu importe) si elle existe (ça je sais faire) et qu'elle interrompe le reste du script.

        Pour exemple: J'attends des données JSON telles que { clé1: valeur1, clé2: valeur2,...}. Si en retour j'obtiens {xErr: true, xMsg: monmessagederreur}, l'appel AJAX trouvera clé1 et clé2 avec les valeurs undefined et donc provoquer des erreurs javascript.

        Je voudrais que, si une clé xMsg est trouvée, la fonction de l'appel AJAX originelle qui attend clé1 et clé2 ne s’exécute pas.

        Après quelques recherches du coté de header (PHP), je vais opter pour ta solution qui finalement est la plus simple.

        Sujet résolu mais je reste ouvert à des suggestions

        -
        Edité par Vid Daa 22 novembre 2017 à 19:14:58

        • Partager sur Facebook
        • Partager sur Twitter

        ajax pour traitement des erreur

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown