Die sogenannte domänenübergreifende Anforderung bedeutet: Die Domäne, in der die Anforderung derzeit initiiert wird, unterscheidet sich von der Domäne, in der sich die Ressource befindet, auf die die Anforderung verweist. Die Domäne bezieht sich hier auf das Konzept: Wir glauben, dass es sich um dieselbe Domäne handelt, wenn Protokoll + Domänenname + Portnummer gleich sind.
Das Backend löst domänenübergreifende Probleme, hauptsächlich mit Hilfe von CORS
Sie können Annotationen verwenden: @CrossOrigin
Nachdem diese Annotation aktiviert ist, kreuzen Sie -Domänenprobleme können gelöst und hinzugefügt werden. Im Controller scheint es, dass alle Methoden in diesem Controller einer domänenübergreifenden Verarbeitung unterzogen wurden, und können auch separat zu einer Methode hinzugefügt werden, was darauf hinweist, dass nur diese Methode einer domänenübergreifenden Verarbeitung unterzogen wurde -Domänenverarbeitung
, aber der Standardwert ist *, d. h. Alle sind standardmäßig zulässig, was theoretisch nicht sehr sicher ist. Wenn das Projekt mehrere Controller oder mehrere Methoden enthält, ist die Verwendung von Anmerkungen sehr nutzlos . Wenn das einzelne Hinzufügen zu mühsam ist, können Sie zu diesem Zeitpunkt globale Annotationen verwenden.
Globale Lösung
Prinzip: Erstellen Sie eine Konfigurationsklasse, aktivieren Sie die domänenübergreifende Registrierung und verwenden Sie die Annotation @Configuration, um diese Klasse einzufügen als Konfiguration in das Projekt einfügen
Wir können die Anforderungsmethode, die Domänennamenberechtigungen und die Anforderungen frei konfigurieren. Zeit, den domänenübergreifenden Bereich detaillierter steuernpackage com.wyh.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * @Description: 解决全局跨域 * @Author: 魏一鹤 * @Date: 2022-11-30 22:44 **/ @Configuration public class CorsMapping implements WebMvcConfigurer { @Override /** * 重新跨域支持方法 * CorsRegistry 开启跨域注册 */ public void addCorsMappings(CorsRegistry registry) { //addMapping 添加可跨域的请求地址 registry.addMapping("/**") //设置跨域 域名权限 规定由某一个指定的域名+端口能访问跨域项目 .allowedOrigins("*") //是否开启cookie跨域 .allowCredentials(false) //规定能够跨域访问的方法类型 .allowedMethods("GET","POST","DELETE","PUT","OPTIONS") //添加验证头信息 token //.allowedHeaders() //预检请求存活时间 在此期间不再次发送预检请求 .maxAge(3600); } }Hinweis: Vergessen Sie nicht die Annotation @Configuration, sonst wird die Konfiguration wird ungültig! ! !
Das obige ist der detaillierte Inhalt vonWie SpringBoot globale und lokale domänenübergreifende Implementierungen implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!