Detaillierte Erläuterung der Konfigurationsmethode des Vue-Anforderungs-Interceptors

Detaillierte Erläuterung der Konfigurationsmethode des Vue-Anforderungs-Interceptors

Befolgen Sie die nachstehenden Schritte

1. Inhalt request.js : Konfiguration des HTTP-Anforderungs-Interceptors und des HTTP-Antwortserver-Antwort-Interceptors

2. http.js -Inhalt: Anforderungsdatenkapselung

3. utils.js -Inhalt: Token abrufen und feststellen, ob Token vorhanden ist

4. Datei store :

Vuex Warehouse-Konfiguration

  • Vuex-Persistenz
  • Vuex-Vorlagenreferenz

5. Schnittstellenkapselung

Inhaltsverzeichnis

request.js-Inhalt

Konfiguration http request -Anforderungs-Interceptors und http response -Antwort-Interceptors

 // HTTP-Anforderungs-Interceptor, wenn ein Token-Wert vorhanden ist, konfigurieren Sie den Token-Wert. Importieren Sie Axios von „Axios“.
Promise von 'promise' importieren
importiere util aus „./utils“;
Store aus „./../store/index“ importieren;
const service = axios.create({
    Timeout: 60000, // Anforderungs-Timeout-Header: {
        // Autorisierung: Autorisierung,
        „Inhaltstyp“: „Anwendung/json;Zeichensatz=UTF-8“
    }
});
// HTTP-Anforderungs-Interceptor service.interceptors.request.use(
    Konfiguration => {
        Verwenden Sie stattdessen tokenExist.
        wenn (TokenExist) {
            // bus.$emit('toggleloading', true) //Anzeige wird geladen
            //Wenn das Token vorhanden ist, config.headers['Authorization'] = `Bearer ${util.getToken()}`;
        }
        // Toast.laden({
        // Nachricht: „Wird geladen …“,
        // Dauer: 0,
        // forbidClick: true
        // });
        Konfiguration zurückgeben;
    },
    Fehler => {
        Versprechen.Ablehnen(Fehler);
    }
)
// HTTP-Antwortserver-Antwort-Interceptor,
//Fangen Sie hier 401-Fehler ab und springen Sie zurück zur Anmeldeseite, um das Token erneut abzurufen.
Dienst.Interceptors.Antwort.Verwendung(
    Antwort => {
        wenn (Antwort.Status === 200) {
            //Kommunikation erfolgreich// Toast.clear();
            /****************
             * response.data.status === 0 Fehler* response.data.status === 100 Erfolg* response.data.status === 401 Token abgelaufen*
             * *************/
            // bus.$emit('toggleloading', false) // Laden ausblenden
            wenn (Antwort.Daten.Status === 401) {
                //Wenn das Token abgelaufen ist, springe zum Login. Message.error("Login ist abgelaufen, bitte erneut anmelden!");
                store.commit('SET_TOKEN', '');
                util.goLogin();
            } sonst wenn (Antwort.Daten.Zustand === 0) {
                // Nachricht.Fehler(Antwort.Daten.Nachricht);
                Antwortdaten zurückgeben;
            } anders {
                Antwortdaten zurückgeben;
            }
        }
    },
    Fehler => {
        //Anfrage fehlgeschlagen//;
        const Antwort = Fehler.Antwort;
        wenn (Antwort.Status === 401) {
            // Toast.fail(Antwort.Daten.Nachricht);
            Message.error("Login ist abgelaufen, bitte erneut anmelden!");
            util.goLogin();
        } sonst wenn (Antwort.status === 403) {
            $router.push({
                Name: '403'
            });
        } anders {
            // Toast.fail(response.data.message ? response.data.message : 'Systemfehler, bitte kontaktieren Sie den Administrator');
            // Nachricht.Fehler({
            //Meldung: „Kein Dienst, bitte kontaktieren Sie den Administrator“
            // });
        }
        returniere Promise.reject(Fehler);
    }
);
Standarddienst exportieren;

http.js-Inhalt

Datenanforderungsmethode

 Anfrage aus „./request“ importieren;
// Store aus „./../store/index“ importieren;
const http = {
    Anfrage(Konfiguration) {
        Anfrage(Konfiguration);
    },
    post(URL, Daten) {
        // wenn (Dateninstanz des Objekts) {
        // }anders{
        // Daten = {
        // ...Daten
        // };
        // }
        Rückgabeanforderung({
            URL (URL = URL = URL),
            Methode: 'post',
            Daten
        });
    },
    postFile(url, daten, inhaltstyp) {
        Rückgabeanforderung({
            URL (URL = URL = URL),
            Methode: 'post',
            Daten,
            Inhaltstyp
        });
    },
    get(url, params) {
        Rückgabeanforderung({
            URL (URL = URL = URL),
            Methode: 'get',
            Parameter
        });
    },
    setze(URL, Daten) {
        Rückgabeanforderung({
            URL (URL = URL ...
            Methode: 'put',
            Daten
        });
    },
    löschen(URL) {
        Rückgabeanforderung({
            URL (URL = URL = URL),
            Methode: 'löschen'
        });
    },
    herunterladen(URL, Parameter) {
        Rückgabeanforderung({
            URL (URL = URL = URL),
            Methode: 'get',
            Parameter,
            Antworttyp: „Blob“
        });
    },
    downloadPost(url, daten) {
        Rückgabeanforderung({
            URL (URL = URL = URL),
            Methode: 'post',
            Daten,
            Antworttyp: „Blob“
        });
    }
};
Standard-HTTP exportieren;

utils.js-Inhalt

Holen Sie sich das Token und bestimmen Sie, ob das Token vorhanden ist

 Store aus „../store/index“ importieren;
lass util = {
    //Token abrufen
    getToken() {
        gibt store.getters.token zurück;
    },
    //Beurteilen, ob das Token existiert tokenExist() {
        lass Flagge;
        sei Token = store.getters.token;
        wenn (Token && Token !== '') {
            Flagge = wahr;
        } anders {
            Flagge = falsch;
        }
        Token zurückgeben;
    },
}
Standard-Dienstprogramm exportieren 

Vuex Warehouse-Konfiguration

  • Vuex-Persistenz
  • Vuex-Vorlagenreferenz

index.js-Inhalt

 Vue von „vue“ importieren
Vuex von „vuex“ importieren
importiere VuexPersistence von „vuex-persist“;
importiere db aus './db'
Vue.Verwenden(Vuex)
//Vuex-Statuspersistenz const vuexLocal = new VuexPersistence({
    Speicher:window.localStorage
})
const store = neuer Vuex.Store({
    Zustand:{},
    Mutationen:{},
    Aktionen:{},
    Module: {
        db
    },
    Plugins: [vuexLocal.plugin]
})
Standardspeicher exportieren

db.js-Inhalt

 Konstante db = {
    Zustand: {
        Token: '',
    },
    Getter: {
        token:status => status.token
    },
    Mutationen:
        //Token speichern
        setToken: (Status, Wert) => {
            Status.Token = Wert
        }
    },
    Aktionen: {}
}
Standard-DB exportieren

Schnittstellenkapselung

 importiere http von "../common/http"
/***********Anmelden und registrieren*************/
//Schnittstellenfunktion testen text(params){
    gibt http.get("api/Test/GetList", Parameter) zurück
}
//Anmelden Funktion Login(params) {
    gibt http.post("api/Login/Login", Parameter) zurück
}
// Hol dir den grafischen Verifizierungscode function GetValidateCode(params) {
    gibt http.post zurück("api/Login/GetValidateCode", Parameter)
}
// Holen Sie sich den Telefonbestätigungscode. Hinweis: Sie müssen die Mensch-Maschine-Verifizierung im Voraus überprüfen, sonst besteht die Gefahr, dass Sie böswillig per SMS gestohlen werden. Funktion GetPhoneCode (Params) {
    gibt http.post("api/Login/GetPhoneCode", Parameter) zurück
}
//Informationen zur Registrierungsüberprüfung Funktion RegisterUserVerify(params) {
    return http.post("api/Login/RegisterUserVerify", Parameter)
}
// Registrieren, Passwort festlegen und Benutzerinformationen registrieren Funktion RegisterUserInfo(params) {
    gibt http.post("api/Login/RegisterUserInfo", Parameter) zurück
}
// Kennwort vergessen - Bestätigungsname und Telefonnummer - Funktion ResetPasswordVerify(params) {
    return http.post("api/Login/ResetPasswordVerify", Parameter)
}
// Passwort vergessen Passwort-Update-Funktion ResetPassWord(params) {
    gibt http.post zurück("api/Login/ResetPassWord", Parameter)
}
exportieren {
    Login,
    Text,
    GetPhoneCode,
    RegisterUserVerify,
    GetValidateCode,
    Passwort zurücksetzenVerify,
    Passwort zurücksetzen,
    RegisterUserInfo
}

Zusammenfassen

Dieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalt auf 123WORDPRESS.COM lesen können!

Das könnte Sie auch interessieren:
  • Vue fügt die Nutzung von Anforderungs-Interceptor und Vue-Ressourcen-Interceptor hinzu
  • Vue Axios-Anmeldeanforderungs-Interceptor
  • Zusammenfassung der Wissenspunkte des Vue-Routing-Interceptors und des Request-Interceptors
  • Schritte für Vue zum Kapseln von Axios-Anfragen und -Interceptors
  • Der Vue Axios Interceptor verwendet häufig die wiederholte Stornierung von Anforderungen

<<:  Sieben verschiedene Farbschemata für das Website-Design-Erlebnis

>>:  Zusammenfassung der MySQL-Verbundindizes

Artikel empfehlen

Installieren und verwenden Sie Git und GitHub unter Ubuntu Linux

Einführung in Git Git ist eine Open-Source-Versio...

So implementieren Sie das Builder-Muster in Javascript

Überblick Das Builder-Muster ist ein relativ einf...

Der Prozess der Installation und Konfiguration von Nginx in Win10

1. Einleitung Nginx ist ein kostenloser, quelloff...

JavaScript zum Hinzufügen und Löschen von Nachrichten im Message Board

Dieser Artikel zeigt ein kleines Beispiel für das...

Eine kurze Erläuterung, wann MySQL interne temporäre Tabellen verwendet

Gewerkschaftsexekution Verwenden Sie zur Vereinfa...

3 Codes zur automatischen Aktualisierung von Webseiten

Tatsächlich ist es sehr einfach, diesen Effekt zu ...