Heim Web-Frontend js-Tutorial So fügen Sie Cookies an domänenübergreifende Ajax-Anfragen an

So fügen Sie Cookies an domänenübergreifende Ajax-Anfragen an

Sep 13, 2018 pm 05:26 PM
ajax cookie

Dieses Mal zeige ich Ihnen, wie Sie das Problem des Cookie-Verlusts beim domänenübergreifenden Ajax-Zugriff lösen können. Das Folgende ist ein praktischer Fall Schauen Sie mal rein.

Bei der eigentlichen Entwicklung des Projekts werden wir immer auf Projekte stoßen, bei denen das Front-End und das Back-End getrennt sind. Bei solchen Projekten ist die domänenübergreifende Speicherung das erste Problem, das gelöst werden muss Es ist jedoch sehr wichtig, dass die Methode der Kombination von Sitzung und Cookie normalerweise verwendet wird, um Benutzerinformationen im Hintergrund zu speichern. In der tatsächlichen Situation des Frontends kann der domänenübergreifend generierte Ajax jedoch keine Cookie-Informationen übertragen, was dazu führt Der Verlust von Sitzungs- und Cookie-Benutzerinformationen ist betroffen. Wie kann ich ein solches Problem anhand der Informationen lösen? Ich nehme die Ajax-Anfrage in $http von angleJS.

Zuerst verwende ich im Hintergrund den Servlet-Filter, um alle Anfragen abzufangen und den Anfrage-Header festzulegen:


	// 解决跨越问题
Nach dem Login kopieren
	response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "*");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,SessionToken");
Nach dem Login kopieren
	// 允许跨域请求中携带cookie
        response.setHeader("Access-Control-Allow-Credentials", "true");
Nach dem Login kopieren

Der obige Teil des Codes dient dazu Lösen Sie das domänenübergreifende Problem. Der fragliche Code und der zweite Teil von Response.setHeader("Access-Control-Allow-Credentials", "true"); ist der Code, der die Übertragung von Cookies im Backend ermöglicht.


Front-End-Code:


$scope.login = function () {
                $http({
                    // 设置请求可以携带cookie
                    withCredentials:true,
                    method: 'post',
                    params: $scope.user,
                    url: 'http://localhost:8080/user/login'
                }).then(function (res) {
                    alert(res.data.msg);
                }, function (res) {
                    if (res.data.msg) {
                        alert(res.data.msg);
                    } else {
                        alert('网络或设置错误');
                    }
                })
            }
Nach dem Login kopieren

Aus dem obigen Code können wir das domänenübergreifend leicht erkennen Anfragen im Front-End Der wichtigste Punkt ist withCredentials:true Diese Anweisung kann in Kombination mit den im Hintergrund festgelegten „Access-Control-Allow-Credentials“ und „true“ Cookies in domänenübergreifenden Ajax-Anfragen übertragen.


Beim Testen habe ich jedoch einige Probleme festgestellt. Als die Anfrage gesendet wurde, meldete der Browser den folgenden Fehler:

Antwort auf den Preflight Die Anfrage besteht die Zugriffskontrollprüfung nicht: Ein Platzhalter „*“ kann nicht im Header „Access-Control-Allow-Origin“ verwendet werden, wenn das Credentials-Flag „true“ ist. Daher ist der Zugriff auf die Credentials nicht gestattet Der Modus einer XMLHttpRequest wird durch das withCredentials-Attribut gesteuert.

Nachdem ich relevante Informationen konsultiert habe, habe ich herausgefunden, dass der Grund darin liegt, den domänenübergreifenden Code „response.setHeader(“Access-Control- Allow-Origin", "*"); Dieser Teil steht im Konflikt mit dem Teil zum Einrichten von domänenübergreifenden Cookies. Nachdem ich die relevanten Informationen überprüft hatte, stellte ich fest, dass beim Einrichten domänenübergreifender Ajax-Anfragen zum Tragen von Cookies die Zugriffskontrolle- Allow-Origin muss angegeben werden. Dies bedeutet, dass sein Wert nicht * sein kann. Wenn Sie jedoch daran denken, dass sich die Front-End-IP ändert, wenn Front-End und Back-End getrennt werden, haben Sie das Gefühl, wieder am ursprünglichen Punkt zu sein Können Sie diese Methode nicht verwenden, um das Problem der domänenübergreifenden Ajax-Übertragung von Cookies zu lösen?

Als nächstes habe ich bei der Recherche zu den von mir gestellten Ajax-Anfragen festgestellt, dass in AngularJS der Wert des Origin-Anfrageheaders in jeder Anfrage „null“ ist. Also habe ich den Hintergrund „Access-Control-Allow-Origin“, „*“ in „Access-Control-Allow-Origin“, „null“ geändert und als nächstes wurde alles wunderbar, alle Ajax-Anfragen waren erfolgreich seinen Zweck erreicht.


      response.setHeader("Access-Control-Allow-Origin", "null");
Nach dem Login kopieren

Verwandte Empfehlungen:

JavaScript (Ajax) und Cookie Same Origin Policy

Ajax Bei domänenübergreifenden Anfragen können keine Cookies verwendet werden

Das obige ist der detaillierte Inhalt vonSo fügen Sie Cookies an domänenübergreifende Ajax-Anfragen an. 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)

So beheben Sie den 403-Fehler, der bei einer jQuery-AJAX-Anfrage auftritt So beheben Sie den 403-Fehler, der bei einer jQuery-AJAX-Anfrage auftritt Feb 20, 2024 am 10:07 AM

Titel: Methoden und Codebeispiele zur Behebung von 403-Fehlern in jQuery-AJAX-Anfragen. Der 403-Fehler bezieht sich auf eine Anfrage, dass der Server den Zugriff auf eine Ressource verbietet. Dieser Fehler tritt normalerweise auf, weil der Anfrage die Berechtigungen fehlen oder sie vom Server abgelehnt wird. Wenn Sie jQueryAJAX-Anfragen stellen, stoßen Sie manchmal auf diese Situation. In diesem Artikel wird erläutert, wie dieses Problem gelöst werden kann, und es werden Codebeispiele bereitgestellt. Lösung: Berechtigungen prüfen: Stellen Sie zunächst sicher, dass die angeforderte URL-Adresse korrekt ist und stellen Sie sicher, dass Sie über ausreichende Berechtigungen für den Zugriff auf die Ressource verfügen.

So beheben Sie den Fehler 403 der jQuery AJAX-Anfrage So beheben Sie den Fehler 403 der jQuery AJAX-Anfrage Feb 19, 2024 pm 05:55 PM

jQuery ist eine beliebte JavaScript-Bibliothek zur Vereinfachung der clientseitigen Entwicklung. AJAX ist eine Technologie, die asynchrone Anfragen sendet und mit dem Server interagiert, ohne die gesamte Webseite neu zu laden. Wenn Sie jedoch jQuery zum Senden von AJAX-Anfragen verwenden, treten manchmal 403-Fehler auf. Bei 403-Fehlern handelt es sich in der Regel um vom Server verweigerte Zugriffsfehler, möglicherweise aufgrund von Sicherheitsrichtlinien oder Berechtigungsproblemen. In diesem Artikel besprechen wir, wie Sie bei einer jQueryAJAX-Anfrage den Fehler 403 beheben können

PHP und Ajax: Erstellen einer Autovervollständigungs-Vorschlags-Engine PHP und Ajax: Erstellen einer Autovervollständigungs-Vorschlags-Engine Jun 02, 2024 pm 08:39 PM

Erstellen Sie eine Engine für Autovervollständigungsvorschläge mit PHP und Ajax: Serverseitiges Skript: Verarbeitet Ajax-Anfragen und gibt Vorschläge zurück (autocomplete.php). Client-Skript: Ajax-Anfrage senden und Vorschläge anzeigen (autocomplete.js). Praktischer Fall: Fügen Sie ein Skript in die HTML-Seite ein und geben Sie die Kennung des Sucheingabeelements an.

Detaillierte Erklärung, wo Browser-Cookies gespeichert werden Detaillierte Erklärung, wo Browser-Cookies gespeichert werden Jan 19, 2024 am 09:15 AM

Mit der Popularität des Internets ist die Verwendung von Browsern zum Surfen im Internet zu einer Lebensweise geworden. Bei der täglichen Verwendung von Browsern stoßen wir häufig auf Situationen, in denen wir Kontokennwörter eingeben müssen, z. B. beim Online-Shopping, bei sozialen Netzwerken, bei E-Mails usw. Diese Informationen müssen vom Browser aufgezeichnet werden, damit sie bei Ihrem nächsten Besuch nicht erneut eingegeben werden müssen. Was sind Cookies? Bei einem Cookie handelt es sich um eine kleine Datendatei, die vom Server an den Browser des Benutzers gesendet und lokal gespeichert wird. Sie enthält das Benutzerverhalten einiger Websites.

Wie kann das Problem des jQuery AJAX-Fehlers 403 gelöst werden? Wie kann das Problem des jQuery AJAX-Fehlers 403 gelöst werden? Feb 23, 2024 pm 04:27 PM

Wie kann das Problem des jQueryAJAX-Fehlers 403 gelöst werden? Bei der Entwicklung von Webanwendungen wird jQuery häufig zum Senden asynchroner Anfragen verwendet. Allerdings kann bei der Verwendung von jQueryAJAX manchmal der Fehlercode 403 auftreten, der darauf hinweist, dass der Zugriff vom Server verboten ist. Dies wird normalerweise durch serverseitige Sicherheitseinstellungen verursacht, es gibt jedoch Möglichkeiten, das Problem zu beheben. In diesem Artikel wird erläutert, wie Sie das Problem des jQueryAJAX-Fehlers 403 lösen können, und es werden spezifische Codebeispiele bereitgestellt. 1. machen

Wie erhalte ich Variablen aus der PHP-Methode mit Ajax? Wie erhalte ich Variablen aus der PHP-Methode mit Ajax? Mar 09, 2024 pm 05:36 PM

Die Verwendung von Ajax zum Abrufen von Variablen aus PHP-Methoden ist ein häufiges Szenario in der Webentwicklung. Durch Ajax kann die Seite dynamisch abgerufen werden, ohne dass die Daten aktualisiert werden müssen. In diesem Artikel stellen wir vor, wie man Ajax verwendet, um Variablen aus PHP-Methoden abzurufen, und stellen spezifische Codebeispiele bereit. Zuerst müssen wir eine PHP-Datei schreiben, um die Ajax-Anfrage zu verarbeiten und die erforderlichen Variablen zurückzugeben. Hier ist ein Beispielcode für eine einfache PHP-Datei getData.php:

Häufig gestellte Fragen und Lösungen zu Cookie-Einstellungen Häufig gestellte Fragen und Lösungen zu Cookie-Einstellungen Jan 19, 2024 am 09:08 AM

Für häufige Probleme und Lösungen für Cookie-Einstellungen sind spezifische Codebeispiele erforderlich. Mit der Entwicklung des Internets wurden Cookies als eine der häufigsten herkömmlichen Technologien in großem Umfang in Websites und Anwendungen eingesetzt. Einfach ausgedrückt handelt es sich bei einem Cookie um eine Datendatei, die auf dem Computer des Benutzers gespeichert wird und zum Speichern der Benutzerinformationen auf der Website verwendet werden kann, einschließlich Anmeldename, Inhalt des Warenkorbs, Website-Präferenzen usw. Cookies sind ein unverzichtbares Werkzeug für Entwickler, gleichzeitig werden jedoch häufig Cookie-Einstellungen vorgenommen

So finden Sie Cookies in Ihrem Browser So finden Sie Cookies in Ihrem Browser Jan 19, 2024 am 09:46 AM

Bei unserer täglichen Nutzung von Computern und dem Internet sind wir häufig Cookies ausgesetzt. Ein Cookie ist eine kleine Textdatei, die Aufzeichnungen über unsere Besuche auf der Website, Präferenzen und andere Informationen speichert. Diese Informationen können von der Website verwendet werden, um uns besser bedienen zu können. Aber manchmal müssen wir Cookie-Informationen finden, um den gewünschten Inhalt zu finden. Wie finden wir also Cookies im Browser? Zuerst müssen wir verstehen, wo sich das Cookie befindet. im Browser

See all articles