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

MySQL-Lösung für zeitgesteuerte Backups (mithilfe von Linux crontab)

Vorwort Obwohl manche Liebe auf dieser Welt ihren...

Tutorial zu HTML-Formular-Tags (4):

Nehmen Sie nun an, dass Sie dem Formular ein Elem...

So verwenden Sie den Fuser-Befehl im Linux-System

Was ist Fuser Command? Der Befehl fuser ist ein s...

JavaScript-Implementierung der Dropdown-Liste

In diesem Artikelbeispiel wird der spezifische Ja...

Führen Sie die Schritte zur Installation von FFmpeg auf dem CentOS-Server aus

Vorwort Die Serversystemumgebung ist: CentOS 6.5 ...

Analyse des Docker-Compose-Image-Release-Prozesses des Springboot-Projekts

Einführung Das Docker-Compose-Projekt ist ein off...

Beispiel für die Konvertierung von Webpack-Bildern in Base64

URL-Loader herunterladen yarn add -D URL-Lader Mo...

Vue3+Skript-Setup+ts+Vite+Volar-Projekt

Inhaltsverzeichnis Erstellen Sie ein Vue + TS-Pro...

So erstellen Sie PHP7 mit einem benutzerdefinierten Docker-Image

Führen Sie zunächst eine einfache Docker-Installa...