Inhaltsverzeichnis
Der Unterschied zwischen direkten Anfragen und Proxy-Anfragen
Proxy-Konfiguration in vue.config.js
实现原理
Heim Web-Frontend Front-End-Fragen und Antworten Prinzip der Proxy-Anfrage von vue-cli

Prinzip der Proxy-Anfrage von vue-cli

May 25, 2023 am 09:51 AM

Vue ist ein beliebtes JavaScript-Framework, mit dem interaktive Webanwendungen erstellt werden können. Während des Entwicklungsprozesses verwenden wir normalerweise vue-cli, um ein grundlegendes Vue-Projekt zu initialisieren. vue-cli ist ein offiziell von Vue bereitgestelltes Gerüsttool. Es bietet viele praktische Funktionen wie Projektinitialisierung, Verpackung, Veröffentlichung usw.

Während des Entwicklungsprozesses kann es jedoch zu einem Problem kommen: domänenübergreifende Anfragen. Aufgrund der Same-Origin-Richtlinie des Browsers können wir beim Senden einer Anfrage an das Front-End-Ajax nur Serverressourcen unter demselben Domänennamen anfordern, nicht jedoch Serverressourcen in anderen Domänennamen. Zu diesem Zeitpunkt können wir dieses Problem durch Proxy-Anfragen in vue-cli lösen.

Wie wird also die Proxy-Anfrage in vue-cli implementiert?

Der Unterschied zwischen direkten Anfragen und Proxy-Anfragen

Bevor wir das Prinzip von Proxy-Anfragen verstehen, müssen wir den Unterschied zwischen direkten Anfragen und Proxy-Anfragen verstehen. Wenn wir während des Entwicklungsprozesses direkt über Ajax-Anfragen auf den Backend-Dienst zugreifen, wird die Anfrage direkt vom Front-End an das Backend gesendet, wie in der folgenden Abbildung dargestellt:

Prinzip der Proxy-Anfrage von vue-cli

Diese Methode führt zu domänenübergreifenden Problemen . Wenn die Back-End-Schnittstelle keinen domänenübergreifenden Antwortheader festlegt, verhindert der Browser, dass das Front-End AJAX-Anfragen initiiert, was dazu führt, dass die Anfrage fehlschlägt.

In vue-cli werden wir dieses Problem durch Proxy-Anfragen lösen. Die Grundidee beim Proxying von Anfragen besteht darin, die Anfrage an den lokalen Server zu senden, der die Anfrage dann an den Backend-Server weiterleitet.

Prinzip der Proxy-Anfrage von vue-cli

Proxy-Konfiguration in vue.config.js

Im vue-cli-Projekt können wir Proxy-Anfragen einrichten, indem wir die Datei vue.config.js konfigurieren. In dieser Datei können wir die Option devServer festlegen und den Proxy konfigurieren, indem wir das Objekt proxy festlegen. Das Folgende ist ein einfaches Beispiel: devServer 选项,通过设置 proxy 对象进行代理配置。下面是一个简单的例子:

module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:8080',
        changeOrigin: true
      }
    }
  }
}
Nach dem Login kopieren

在上述代理配置中,我们将 /api 路径下的请求都转发到本地的 http://localhost:8080 地址。

其中, changeOrigin 选项用于控制是否需要更改请求头中原始主机名。

proxy 对象中,我们可以设置多个代理地址,例如:

module.exports = {
  devServer: {
    proxy: {
      '/api1': {
        target: 'http://localhost:8081',
        changeOrigin: true
      },
      '/api2': {
        target: 'http://localhost:8082',
        changeOrigin: true
      }
    }
  }
}
Nach dem Login kopieren

这里的 /api1/api2 分别代表要转发的请求路径, target 属性指定了要转发到的服务器地址。

实现原理

在了解了代理请求的配置后,我们来看一下代理请求的实现原理。

首先,当我们在前端发起请求时,请求会先被发送到本地服务器。本地服务器接收到请求后,会对请求进行一系列处理,包括修改请求头、修改请求路径等。然后,将处理过的请求转发至后端服务器上。

流程图如下:

Prinzip der Proxy-Anfrage von vue-cli

需要注意的是,在本地服务器中,我们需要设置代理中间件,例如 http-proxy-middlewarerrreee

In der obigen Proxy-Konfiguration leiten wir alle Anfragen unter dem Pfad /api an die lokale Adresse http://localhost:8080 weiter .

Unter anderem wird die Option changeOrigin verwendet, um zu steuern, ob der ursprüngliche Hostname im Anforderungsheader geändert werden muss.

Im Proxy-Objekt können wir mehrere Proxy-Adressen festlegen, zum Beispiel: 🎜rrreee🎜Hier stellen /api1 und /api2 jeweils den weiterzuleitenden Anforderungspfad dar, target gibt die Serveradresse an, an die weitergeleitet werden soll. 🎜🎜Implementierungsprinzip🎜🎜Nachdem wir die Konfiguration von Proxy-Anfragen verstanden haben, werfen wir einen Blick auf die Implementierungsprinzipien von Proxy-Anfragen. 🎜🎜Wenn wir zunächst eine Anfrage im Frontend initiieren, wird die Anfrage zunächst an den lokalen Server gesendet. Nachdem der lokale Server die Anforderung empfangen hat, führt er eine Reihe von Verarbeitungsvorgängen für die Anforderung durch, einschließlich der Änderung des Anforderungsheaders, der Änderung des Anforderungspfads usw. Die verarbeitete Anfrage wird dann an den Backend-Server weitergeleitet. 🎜🎜Das Flussdiagramm sieht wie folgt aus: 🎜🎜Proxy Anforderungsflussdiagramm 🎜🎜Es ist zu beachten, dass wir auf dem lokalen Server Proxy-Middleware einrichten müssen, z. B. http-proxy-middleware. Proxy-Middleware ist ein Abfangjäger ähnlich einer Antwortanfrage, der zur Steuerung des Anfrageprozesses und zur Änderung des Anfrageinhalts verwendet wird. Wir können die Proxy-Weiterleitung von Anfragen implementieren, indem wir Proxy-Middleware konfigurieren. 🎜🎜Zusammenfassung🎜🎜Durch die obige Einführung verstehen wir das Prinzip der Proxy-Anfrage in vue-cli. Die Proxy-Anfrage ist eine Methode zur Lösung domänenübergreifender Probleme am Front-End. Sie leitet die Anfrage an den lokalen Server weiter, und der lokale Server leitet die Anfrage dann an den Back-End-Server weiter, um den Effekt einer domänenübergreifenden Anfrage zu erzielen. In vue-cli können wir Proxy-Anfragen einrichten, indem wir die Datei vue.config.js konfigurieren, um domänenübergreifende Anfragen am Front-End zu erreichen. 🎜

Das obige ist der detaillierte Inhalt vonPrinzip der Proxy-Anfrage von vue-cli. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Reacts Rolle bei HTML: Verbesserung der Benutzererfahrung Reacts Rolle bei HTML: Verbesserung der Benutzererfahrung Apr 09, 2025 am 12:11 AM

React kombiniert JSX und HTML, um die Benutzererfahrung zu verbessern. 1) JSX bettet HTML ein, um die Entwicklung intuitiver zu gestalten. 2) Der virtuelle DOM -Mechanismus optimiert die Leistung und reduziert den DOM -Betrieb. 3) Komponentenbasierte Verwaltungs-Benutzeroberfläche zur Verbesserung der Wartbarkeit. 4) Staatsmanagement und Ereignisverarbeitung verbessern die Interaktivität.

Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Mar 21, 2025 pm 06:23 PM

In Artikel werden die Verbindungskomponenten an Redux Store mit Connect () verbinden, wobei MapStatetoprops, MapDispatchtoprops und Leistungsauswirkungen erläutert werden.

Wie definieren Sie Routen mit der & lt; Route & gt; Komponente? Wie definieren Sie Routen mit der & lt; Route & gt; Komponente? Mar 21, 2025 am 11:47 AM

In dem Artikel wird das Definieren von Routen im React -Router unter Verwendung der & lt; Route & gt; Komponente, Abdeckung von Requisiten wie Pfad, Komponente, Rendern, Kindern, exakt und verschachteltes Routing.

Was sind die Einschränkungen des Reaktivitätssystems von Vue 2 in Bezug auf Array- und Objektänderungen? Was sind die Einschränkungen des Reaktivitätssystems von Vue 2 in Bezug auf Array- und Objektänderungen? Mar 25, 2025 pm 02:07 PM

Das Reaktivitätssystem von VUE 2 kämpft mit der Einstellung der Direktarray -Index, der Längenänderung und der Addition/Löschung der Objekteigenschaften. Entwickler können die Mutationsmethoden von VUE und VUE.SET () verwenden, um die Reaktivität sicherzustellen.

Was sind Redux Reduder? Wie aktualisieren sie den Staat? Was sind Redux Reduder? Wie aktualisieren sie den Staat? Mar 21, 2025 pm 06:21 PM

Redux -Reduzierer sind reine Funktionen, die den Status der Anwendung basierend auf Aktionen aktualisieren und die Vorhersehbarkeit und Unveränderlichkeit sicherstellen.

Was sind Redux -Aktionen? Wie schickst du sie? Was sind Redux -Aktionen? Wie schickst du sie? Mar 21, 2025 pm 06:21 PM

In dem Artikel werden Redux -Aktionen, ihre Struktur und Versandmethoden erörtert, einschließlich asynchroner Aktionen unter Verwendung von Redux Thunk. Es betont Best Practices für die Verwaltung von Aktionstypen zur Aufrechterhaltung skalierbarer und wartbarer Anwendungen.

Was sind die Vorteile der Verwendung von TypeScript mit React? Was sind die Vorteile der Verwendung von TypeScript mit React? Mar 27, 2025 pm 05:43 PM

TypeScript verbessert die Reaktionsentwicklung, indem sie die Sicherheit Typ, Verbesserung der Codequalität und eine bessere Unterstützung für eine IDE bietet, wodurch Fehler verringert und die Wartbarkeit verbessert werden.

Reagieren Sie Komponenten: Erstellen wiederverwendbarer Elemente in HTML Reagieren Sie Komponenten: Erstellen wiederverwendbarer Elemente in HTML Apr 08, 2025 pm 05:53 PM

React -Komponenten können durch Funktionen oder Klassen definiert werden, wobei die UI -Logik eingefasst und Eingabedaten durch Props akzeptiert werden. 1) Komponenten definieren: Verwenden Sie Funktionen oder Klassen, um Reaktierungselemente zurückzugeben. 2) Rendering -Komponente: React -Aufrufe rendern Methode oder führt die Funktionskomponente aus. 3) Multiplexing -Komponenten: Daten durch Requisiten übergeben, um eine komplexe Benutzeroberfläche zu erstellen. Mit dem Lebenszyklusansatz von Komponenten kann die Logik in verschiedenen Phasen ausgeführt werden, wodurch die Entwicklungseffizienz und die Wartbarkeit des Codes verbessert werden.

See all articles