javascript - requete - xmlhttprequest ajax




Besoin d'appeler une fonction javascript avant toutes les fonctions ajax et jquery post (4)

J'ai diverses fonctions avec la syntaxe ajax et $ .post qui donne l'appel à la fonction serveur. Mais quand la session est expirée et que la page n'est pas rafraîchie, mon code ajax ne fonctionnera pas. En cela, je veux rediriger la page pour connecter le contrôleur. Comme il s'agit d'un appel ajax, mon code de redirection ne fonctionne pas.

Existe-t-il un code ou une fonction JavaScript / jQuery qui est exécuté avant toute autre fonction jquery ajax et post?

J'utilise PHP (framework Yii) côté serveur.

S'il vous plaît, faites-moi savoir. Je vous remercie.


Ce code peut résoudre votre problème.

$(document).bind("ajaxSend", function(){
   //DO Someting..
});

Remarque beforeSend est un événement local et ajaxSend est un événement global


Utilisez l'événement ajaxComplete .

$( document ).ajaxComplete(function() { 
  window.location.href = "/login";
});

jQuery fournit un ensemble d' événements AJAX que vous pouvez écouter pendant le cycle de vie de la requête. Dans votre cas, vous pouvez vous abonner à l'événement ajaxError déclenché sur le document pour réagir lorsque les demandes ont échoué car non autorisées:

$(document).on('ajaxError', function(el, xhr) {
    if (xhr.status == 401) {
        alert('Unauthorized');
    }
});

        /***
         * Global Ajax call which gets excuted before each $.ajax and $.post function
         * at server side chk session is set or destroy 
         ***/
        $(document).on('ajaxStart', function()
        {
            $.post( BASEURL+"/login/chkLogin",
            {},
            function(data)
            {
                if (data == 'login') {
                  window.location = BASE_URL+'/login'; //Load the login page
                }
                else
                {
                    //alert('all okay! go and execute!'); 
                    //No need to write anything in else part 
                    //or can say no need of else block 
                    //if all okay normal ajax action is processed
                }
            });     
      });

C'est ce que je veux. fonctionnant parfaitement pour ma fonctionnalité. Merci pour toutes les réponses et commentaires. J'ai une grande référence de ta part.





yii