IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[AJAX] Annuler une requête asynchrone server side


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 47
    Points : 60
    Points
    60
    Par défaut [AJAX] Annuler une requête asynchrone server side
    Bonjour!

    Est-ce que qqn sait comment on fait pour annuler une requête asynchrone SERVER SIDE lorsqu'on utilise les AJAX Extensions?

    Le ScriptManager a une propriété IsInAsyncPostBack qui me permet de savoir si je suis dans ce cas, mais je n'arrive pas à transformer cette requête en requête normale.

    Si jamais, la source de mon problème est qu'en cas d'erreur lors d'une requête asynchrone, je fais un Server.Transfer("MaPageErreur.aspx"). Problème: cette page retourne une page HTML complète, pas seulement le XML en réponse à l'appel AJAX. Et au final j'obtiens un "ParserError" côté client lorsque le javascript essaie de parser la réponse.

    Merci d'avance,

    Matthieu

    Edit:
    Bon, si j'utilise un Response.Redirect au lieu du Server.Transfer dans l'event handler de l'erreur, ça fonctionne. Mais ma question reste quand même

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 29
    Points : 34
    Points
    34
    Par défaut
    j'utilise ce bout de script coté client pour intercepter les erreurs serveur dans les appels Ajax; tu peux peut-être partir de ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <script type="text/javascript">
     
      window.pageLoad = function(){
            // On rajoute une fonction qui s'exécutera a tous les retours de requête Ajax
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender,e)
            {
                    var m_Error = e.get_error();
                    // On regarde si la requête s'est bien ou mal passé
                    if(m_Error){
                        // On affiche le message d'erreur dans un div
                        $get("idErrorMessage").innerText =  m_Error.description;
                        // On avertit qu'on a traité l'erreur qu'il n'est pas nécessaire d'afficher l'alert JavaScript
                        e.set_errorHandled( true );
                    }
           });
        }
    </script>
    Une approche possible ça serai de faire un server.transfert coté serveur et de mettre le response.statuscode à 500 puis, coté client d'utiliser ce javascript, en le modifiant pour remplacer toute la page par la réponse serveur.

    Damien Thouvenin
    -------------
    CLT Services, spécialistes Dot Net + SQL 2005

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 47
    Points : 60
    Points
    60
    Par défaut
    Très intéressant ton bout de code Damien!

    Citation Envoyé par dth-clt-services
    Une approche possible ça serai de faire un server.transfert coté serveur et de mettre le response.statuscode à 500 puis, coté client d'utiliser ce javascript, en le modifiant pour remplacer toute la page par la réponse serveur.
    Ah oui, bonne idée, je pourrais effectivement remplacer toute la page par la réponse. Je sais pas encore comment faire ça, m'enfin je vais creuser l'idée!

    Merci beaucoup

    P.S. Je laisse la question en "non résolu" au cas où qqn connaîtrait une méthode server side.

Discussions similaires

  1. probléme dans une requête sql server
    Par red_one dans le forum Langage SQL
    Réponses: 1
    Dernier message: 02/06/2009, 09h15
  2. Trigger qui annule une requête UPDATE
    Par sat83 dans le forum Débuter
    Réponses: 3
    Dernier message: 30/01/2009, 10h32
  3. Réponses: 1
    Dernier message: 05/11/2008, 12h04
  4. Aidez moi pour une requête SQL server
    Par pop10 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 19/06/2007, 22h15
  5. Comment annuler une requête
    Par pierrot67 dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/02/2007, 10h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo