suchen
HeimJavajavaLernprogrammSo lösen Sie das Problem des domänenübergreifenden Ajax- und Cookie-Fehlers beim Abrufen und Verlieren in SpringBoot

Wenn ich die Login-Registrierungsseite meines Projekts schreibe, fügt das Backend beim Senden des Bestätigungscodes ein Cookie zu den Antwortdaten hinzu, da meine Registrierungs- und Passwortänderungsfunktionen eine E-Mail-Verifizierung verwenden.

Cookie cookie = new Cookie(toEmail.split("@")[0],verCode);
cookie.setMaxAge(30*60);
response.addCookie(cookie);

Klicken Sie dann, um sich zu registrieren oder das Passwort zu ändern. Beim Testen , das Backend erhält das Cookie aus der Anfrage, um die E-Mail- und Bestätigungscode-Informationen zu erhalten Das Projekt Nach dem Wechsel in die Cloud ist beim Ausführen des Ajax-Zugriffs ein Problem aufgetreten! Cookies und meldete einen Fehler. Nach der Suche nach Dokumenten wurde festgestellt, dass der Fehler auf das domänenübergreifende Cookie-Verlustproblem von Springboot und Ajax zurückzuführen ist , ich werde hier nur posten

1. Die Ajax-Anfrage muss

xmlhttp.withCredentials = true;

So lösen Sie das Problem des domänenübergreifenden Ajax- und Cookie-Fehlers beim Abrufen und Verlieren in SpringBoot

Cookie[] cookies = request.getCookies();

2 Fehler)

var xmlhttp = new XMLHttpRequest();
xmlhttp.withCredentials = true;
xmlhttp.open("GET", readyUrl, true);
xmlhttp.send();
So lösen Sie das Problem des domänenübergreifenden Ajax- und Cookie-Fehlers beim Abrufen und Verlieren in SpringBoot3. Geben Sie die Antwort in der API im Controller ein, legen Sie den Antwortheader fest, der

-Schlüssel

ist „Access-Control-Allow-Origin“, die für die Zugriffskontrolle zulässige Quelle, http-Anfrage-Header-Informationen, legen Sie die Quelle fest

package com.crisp.myblog.config;
 
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 
@Configuration
public class corsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                //是否发送Cookie
                .allowCredentials(true)
                //放行哪些原始域
                .allowedOriginPatterns("这里填你前端代码所在的域名:端口")
                .allowedMethods(new String[]{"GET", "POST", "PUT", "DELETE"})
                .allowedHeaders("*")
                .exposedHeaders("*");
    }
}

Wert, der die gemeinsame Nutzung von Ressourcen (domänenübergreifend)

ermöglicht, ist request.getHeader("Origin"), der

den Protokoll- und Domänennamen

der Seite

darstellt, auf der sich die aktuell angeforderte Ressource befindet repräsentieren

der aktuell angeforderten Ressource den domänenübergreifenden Zugriff auf Back-End-Ressourcen zu ermöglichen

Nachdem diese drei Teile eingerichtet wurden, konnte ich das Cookie erneut erhalten

2022-12-09 Update:

Ich habe noch mehr gefunden Prägnante und praktische Methode zum Hinzufügen eines domänenübergreifenden AnforderungsfiltersVerwenden Sie StringUtils des Druid-Datenpool-Abhängigkeitspakets isEmpty. Wenn ein Fehler gemeldet wird, schreiben Sie einfach selbst einen Ersatz

response.setHeader("Access-Control-Allow-Origin",request.getHeader("Origin"));

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem des domänenübergreifenden Ajax- und Cookie-Fehlers beim Abrufen und Verlieren in SpringBoot. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:亿速云. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen

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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung