So kapseln Sie Axios einfach in Vue

So kapseln Sie Axios einfach in Vue

Axios in Vue einfügen

importiere Axios von „Axios“;
Vue.prototype.$axios = axios;
Axios von „Axios“ importieren

axios.defaults.timeout = 5000; //Antwortzeit axios.defaults.headers.post['Content-Type'] = 'application/json; charset=UTF-8'; //Anforderungsheader konfigurieren axios.defaults.withCredentials= true; //Mit Cookie
axios.defaults.baseURL = 'http://localhost:8080/'; //Schnittstellenadresse konfigurieren //POST-Parameterserialisierung (Anforderungs-Interceptor hinzufügen)
axios.interceptors.request.use((Konfiguration) => {
	//Sie können hier je nach Backend Serialisierungscode hinzufügen. Das von mir verwendete SSM-Backend akzeptiert JSON-Objekte. Wenn eine Serialisierung erforderlich ist, können Sie die qs-Komponente return config verwenden;
},(Fehler) =>{
    console.log('falsche Parameterübergabe')
    returniere Promise.reject(Fehler);
});

//Statusbeurteilung zurückgeben (Antwort-Interceptor hinzufügen)
axios.interceptors.response.use((res) => {
    //Etwas mit den Antwortdaten machen if (!res.data.success) {
        gibt Promise.resolve(res) zurück;
    }
    Rückgabewert;
}, (Fehler) => {
    console.log('Netzwerkanomalie')
    returniere Promise.reject(Fehler);
});

//Ein Versprechen zurückgeben (eine Post-Anfrage senden)
Exportfunktion fetchPost(URL, Parameter) {
    returniere neues Promise((lösen, ablehnen) => {
        axios.post(URL, Parameter)
            .dann(Antwort => {
                Lösung (Antwort);
            }, err => {
                ablehnen(fehler);
            })
            .catch((Fehler) => {
                ablehnen(Fehler)
            })
    })
}
Gibt ein Promise zurück (sendet eine Get-Anfrage)
Exportfunktion fetchGet(URL, Param) {
    returniere neues Promise((lösen, ablehnen) => {
        axios.get(url, {params: param})
            .dann(Antwort => {
                Lösung (Antwort)
            }, err => {
                ablehnen (Fehler)
            })
            .catch((Fehler) => {
                ablehnen(Fehler)
            })
    })
}
Standard exportieren {
    Beitrag abrufen,
    holenGet,
}

Einfacher Test:

loginPost: Funktion() {
		let Parameter = {
			'Passwort': '123',
			'Benutzername': 'Administrator'
		}
		http.fetchPost('/login', params).then((data) => {
			console.log(Daten)
		}).catch(err => {
			console.log(fehler)
		})
	},
hallo: function() {
		http.fetchGet('/hallo', "").then((data) => {
			console.log(Daten)
		}).catch(err => {
			console.log(fehler)
		})
	},

Anfrage posten:

Anfrage erhalten:

Domänenübergreifendes Problem, hier ist die Konfiguration auf dem Backend:

Konfigurieren Sie Cross-Domain in SpringMVC.xml:

<!-- Domänenübergreifende Schnittstellenkonfiguration -->
    <mvc:cors>
        <!-- allowed-methods="*" --> <!-- bedeutet, dass alle Anfragen gültig sind -->
        <mvc:Mapping-Pfad="/**" allowed-origins="*"
                     erlaubte Methoden="POST, GET, OPTIONEN, LÖSCHEN, PUT"
                     allowed-headers="Inhaltstyp, Zugriffskontrolle-Header zulassen, Autorisierung, X-Angefordert-Mit"
                     allow-credentials="true"/>
    </mvc:cors><!-- Domänenübergreifende Schnittstellenkonfiguration-->

Schnittstellenkonfiguration:

In Vue konfigurieren Erstellen Sie eine vue.config.js:

modul.exporte = {
  devServer: {
    Proxy: {
        '/api': {
            Ziel: 'http://127.0.0.1:8080',
            // Ein virtueller Server wird lokal erstellt und dann werden die angeforderten Daten gleichzeitig gesendet und empfangen, sodass es bei der Interaktion zwischen Server und Server keine domänenübergreifenden Probleme gibt. changeOrigin: true, 
            ws: wahr,
            PfadNeu schreiben: {
                '^/api': '' 
                // Ersetzen Sie die Anforderungsadresse im Ziel, d. h. wenn Sie in Zukunft die Adresse http://api.jisuapi.com/XXXXX anfordern, schreiben Sie einfach /api}
        }
    }
  }
}

Das Backend kann auch normal Cookies abrufen.

Beachten Sie natürlich die folgende Konfiguration, dies ist der Grund für das Cookie

axios.defaults.withCredentials = wahr;

Zusammenfassen

Dies ist das Ende dieses Artikels zum einfachen Einkapseln von Axios in Vue. Weitere relevante Inhalte zur Vue-Einkapselung von Axios finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detailliertes Beispiel für die Verwendung von Typescript zum Einkapseln von Axios in Vue3
  • So kapseln Sie Axios in Vue
  • So kapseln Sie Axios-Anfragen mit Vue
  • Mehrere Möglichkeiten, Axios in Vue zu kapseln
  • Detaillierte Erklärung der AXIOS-Kapselung in Vue

<<:  So fügen Sie einen Wert mit einfachen Anführungszeichen oder Backslashes in MySQL-Anweisungen ein

>>:  Tutorial zur Installation von MYSQL8.X auf Centos

Artikel empfehlen

Tägliche Studiennotizen im HTML-Designmuster

Studiennotizen zu HTML-Entwurfsmustern Diese Woch...

Beispieloperation MySQL Kurzlink

So richten Sie einen MySQL-Kurzlink ein 1. Überpr...

Beispiel für die Implementierung eines gestrichelten Rahmens mit html2canvas

html2canvas ist eine Bibliothek, die Canvas aus H...

Detaillierte Erläuterung der Verwendung des gcc-Befehls unter Linux

Inhaltsverzeichnis 1. Vorverarbeitung 2. Zusammen...

Ein Artikel bringt Ihnen die Vererbung von JS-Funktionen bei

Inhaltsverzeichnis 1. Einleitung: 2. Vererbung de...

JavaScript implementiert einfache Rechnerfunktion

In diesem Artikel wird der spezifische JavaScript...

So installieren Sie Docker unter Windows Server 2016

Kürzlich hat Microsoft Windows Server 2016 veröff...

Lösung für die Navicat Premier-Remoteverbindung zum MySQL-Fehler 10038

Schlägt die Remote-Verbindung zu MySQL fehl, kann...

So betreiben Sie eine MySql-Datenbank mit Gorm

1. Festlegen der Groß-/Kleinschreibung von Felder...

Analyse des HTML-Schreibstils und Gründe erfahrener Leute

1. Navigation: Ungeordnete Liste vs. andere Besch...