1. Wie entsteht Cross-Domain?Wenn wir eine URL anfordern, deren Protokoll, Domänenname oder Port sich vom Protokoll, Domänennamen oder Port der aktuellen Seiten-URL unterscheidet, nennen wir dies „Cross-Domain“. Domänenübergreifendes Arbeiten führt zu: 2. Die Grundursache für Cross-DomainDie Hauptursache für domänenübergreifende Anfragen ist die Same-Origin-Policy des anfordernden Browsers. Die Gründe für den Fehler bei domänenübergreifenden Anfragen sind: Same-Origin-Policy des Browsers && Anfrage ist vom Typ Ajax && Anfrage ist tatsächlich domänenübergreifend 3. LösungEinführung von drei Methoden: JSONP, CORS und Proxy-Weiterleitung 1. JSONP JSONP ist eine gängige Methode für die Cross-Origin-Kommunikation zwischen Servern und Clients. Das größte Merkmal ist seine Einfachheit, Anwendbarkeit und gute Kompatibilität (kompatibel mit niedrigeren IE-Versionen). Der Nachteil besteht darin, dass es nur Get-Anfragen, aber keine Post-Anfragen unterstützt. Nehmen wir ein ganz einfaches Beispiel: Wir fordern ein Bild von einer Netzwerkadresse über das src-Attribut des img-Tags an. Dies ist eine Anfrage, die nicht vom selben Ursprung stammt, aber da die Same-Origin-Policy des Browsers nur für Ajax-Anfragen gilt, wird unsere Anfrage davon nicht betroffen sein. Mit anderen Worten: Nur Ajax-Anfragen verursachen domänenübergreifende Probleme. 2. CORSCORS ist die Abkürzung für Cross-Origin Resource Sharing. Es handelt sich um einen W3C-Standard und eine grundlegende Lösung für Cross-Origin-AJAX-Anfragen. CORS lässt jede Art von Anfrage zu. Bei der Verwendung von CORS für den Datenzugriff muss der Client keine Datenzugriffslogik ändern. Die gesamte Arbeit wird automatisch zwischen dem Server und dem Browser erledigt. Der Frontend-Code unterscheidet sich nicht vom Senden einer normalen Ajax-Anfrage. Wir müssen ihn nur serverseitig einrichten (das Backend ist aktiv). 3. Proxy-Weiterleitung Richten Sie einen Zwischenproxydienst zwischen dem Frontend-Dienst und dem Backend-Schnittstellendienst ein. Seine Adresse bleibt dieselbe wie die des Frontend-Servers. Dann: Konfigurieren Sie den Proxyserver im devServer (Entwicklungsumgebung) von vue.config.js, um Anfragen über diesen Proxyserver zu senden. Dies ist kein reines domänenübergreifendes Problem. Der Code lautet wie folgt: modul.exporte = { devServer: { // ... weggelassen // Proxy-Konfiguration proxy: { // Wenn die Anforderungsadresse mit /api beginnt, wird der Proxy-Mechanismus ausgelöst // http://localhost:9588/api/login -> http://localhost:3000/api/login '/api': { target: 'http://localhost:3000' // Die echte Schnittstellenadresse, die wir als Proxy verwenden möchten} } } } } Denken Sie daran, dass der Stammpfad in baseURL eine relative und keine absolute Adresse ist. Oben finden Sie ausführliche Informationen zu den Ursachen und Lösungen von domänenübergreifenden Problemen im Ajax-Anforderungs-Frontend. Weitere Informationen zu den Ursachen und Lösungen von domänenübergreifenden Ajax-Problemen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung der XHTML-Anwendung im Webdesign-Studium
>>: Docker - Zusammenfassung von 3 Möglichkeiten zum Ändern von Container-Mount-Verzeichnissen
Hexadezimalcodetabelle verschiedener Farben [Teil ...
Inhaltsverzeichnis 1 Einführung in den neuen Oper...
Der folgende Beispielcode stellt die Prinzipien d...
Index Condition Pushdown (ICP) wird in MySQL 5.6 ...
Heute habe ich eine virtuelle Maschine für ein Ex...
Vorwort Viele Freunde, die gerade mit mobilen End...
KILL [VERBINDUNG | ABFRAGE] Prozesslisten-ID In M...
1. Ursache Die Anforderung besteht darin, zwei Ze...
Inhaltsverzeichnis Frühe Erstellungsmethode Fabri...
Ich wurde am frühen Morgen durch einen Anruf gewe...
Inhaltsverzeichnis Frage Reproduktion Implizite K...
Als Vue-Benutzer ist es an der Zeit, React zu erw...
Die Gesamtarchitektur von NGINX ist durch eine Re...
Laden Sie zuerst die Version 15.1 von VMware Work...
In diesem Artikel erfahren Sie, wie Sie das kompr...