Heim  >  Fragen und Antworten  >  Hauptteil

So beheben Sie den unendlichen Umleitungsfehler des Vue Routers

<p>In router.beforeEach möchte ich überprüfen, ob das SessionToken bereits im Speicher vorhanden ist, und wenn nicht, zur Anmeldeseite weiterleiten, um es abzurufen, erhalte jedoch die folgende Fehlermeldung: </p> <pre class="brush:php;toolbar:false;">Navigation Guard hat beim Springen von „/“ zu „/login“ eine unendliche Weiterleitung erkannt. Um einen Stapelüberlauf zu vermeiden, brechen Sie die Navigation ab. Wenn dies nicht behoben wird, führt dies zu Problemen in Produktionsumgebungen. </pre> <p>Code in meinem router.js:</p> <pre class="lang-js Prettyprint-override"><code>router.beforeEach((to, from, next) => { if(ENV == 'Entwicklung') { let sessionStorage = storage.sessionStorageGet('_sessionToken') if (sessionStorage === null) next({ name: 'Login' }) sonst weiter() } }) </code></pre>
P粉403821740P粉403821740442 Tage vor920

Antworte allen(1)Ich werde antworten

  • 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();
        }
      }
    });
    

    Antwort
    0
  • StornierenAntwort