Maison  >  Questions et réponses  >  le corps du texte

Comment résoudre l'erreur de redirection infinie de Vue Router

<p>Dans router.beforeEach, je souhaite vérifier si le sessionToken existe déjà dans le stockage et sinon rediriger vers la page de connexion pour l'obtenir, mais j'obtiens l'erreur suivante : </p> <pre class="brush:php;toolbar:false;">Navigation Guard a détecté une redirection infinie lors du passage de "/" à "/login". Pour éviter le débordement de pile, abandonnez la navigation. S'il n'est pas résolu, cela entraînera des problèmes dans les environnements de production. ≪/pré> <p>Code dans mon router.js : </p> <pre class="lang-js Prettyprint-override"><code>router.beforeEach((vers, depuis, suivant) => { if(ENV == 'développement') { laissez sessionStorage = storage.sessionStorageGet('_sessionToken') if (sessionStorage === null) next({ nom : 'Connexion' }) sinon suivant() } }) </code></pre>
P粉403821740P粉403821740442 Il y a quelques jours919

répondre à tous(1)je répondrai

  • P粉529245050

    P粉5292450502023-08-26 11:39:41

    const routes = [
      {
        path: '/login',
        name: 'Login',
        component: () => import('../views/login'),
        meta: {
          requiresAuth: false
        }
      },
      {
        path: '/private',
        ... private route config,
        meta: {
          requiresAuth: true
        }
      }
    ];
    
    router.beforeEach(async (to, from, next) => {
      if (ENV == 'development') {
        
        if (to.matched.some(record => record.meta.requiresAuth)) {
          const sessionStorage = storage.sessionStorageGet('_sessionToken')
      
          if (sessionStorage) {
            next();
          } else {
            router.push({ name: 'Login' });
          }
        } else {
          next();
        }
      }
    });
    

    répondre
    0
  • Annulerrépondre