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

Einführung in useRef und useState in JavaScript

Inhaltsverzeichnis 1. useState-Hook 2. useRef-Hoo...

Code zur Implementierung eines einfachen Pfeilsymbols mit Div+CSS in HTML

Beim Webdesign verwenden wir Pfeile oft als Dekor...

JavaScript-Canvas zum Erzielen von Meteoreffekten

In diesem Artikel wird der spezifische Code für J...

MySQL-Optimierungszusammenfassung – Gesamtzahl der Abfrageeinträge

1. COUNT(*) und COUNT(COL) COUNT(*) führt normale...

Der gesamte Prozessbericht der Vue-Exportfunktion für Excel

Inhaltsverzeichnis 1. Front-End-Führungsprozess: ...

Detaillierte Erklärung des JSON-Dateischreibformats

Inhaltsverzeichnis Was ist JSON Warum diese Techn...

Angular Cookie Lese- und Schreibvorgangscode

Lese- und Schreibvorgänge bei Angular Cookies, de...

So ändern Sie in Nginx die über http aufgerufene Website in https

Inhaltsverzeichnis 1. Hintergrund 2. Voraussetzun...

Drei Prinzipien effizienten Navigationsdesigns, die Webdesigner kennen müssen

Das Entwerfen der Navigation für eine Website ist...