Das Projekt hat kürzlich eine IP-Black-White-List-Funktion hinzugefügt. Ich habe festgestellt, dass das Frontend immer noch domänenübergreifend angezeigt wird Hat nicht funktioniert. Schließlich habe ich dem Interceptor ein Urteil hinzugefügt. Das ist es. IP-Interceptor vor der Änderung
@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException { // ----------- 加上这个就好了 ----------- if (!(handler instanceof HandlerMethod)) { return true; } }Geänderter IP-Interceptor
@Configuration @RestControllerAdvice public class WebMvcConfig implements WebMvcConfigurer { @Resource private IpFilterInterceptor ipFilterInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { // IP拦截器 registry.addInterceptor(ipFilterInterceptor) .addPathPatterns("/**") .order(5); } @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowCredentials(true) .allowedOriginPatterns("*") .allowedMethods("*") .allowedHeaders("*") .maxAge(3600); } }Schließlich liegt die Ursache des Problems darin, dass der Interceptor dies tun muss Bestimmen Sie den Typ des Handlers in preHandle. Dieser muss HandlerMethod sein. Nur wenn
übergeben werden muss
Das obige ist der detaillierte Inhalt vonDer SpringBoot-Interceptor gibt „false“ zurück, um zu zeigen, wie domänenübergreifende Probleme gelöst werden können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!