Heim >Java >javaLernprogramm >Beispielcode-Freigabe, wie Cors ein vollständig domänenübergreifendes Java-Backend implementiert
In diesem Artikel wird hauptsächlich das vollständige domänenübergreifende Beispiel der Java-Backend-Implementierung von Cors vorgestellt. Der Herausgeber findet es recht gut, daher werde ich es jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Herausgeber und schauen wir uns
http://www.jb51.net/article/114838.htm an Die Lösung ist Spring Boot oder die Spring-Version ist niedriger als 4.2. bezieht sich auf die Implementierung von Spring Boot wie folgt:
Konfigurieren Sie dann den Filter im Web.package com.lvluo.web.filter.CorsFilter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.http.HttpHeaders; public class CorsFilter implements Filter { public static final String ACCESS_CONTROL_REQUEST_METHOD = "Access-Control-Request-Method"; public static final String OPTIONS = "OPTIONS"; public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; if (isCorsRequest(httpRequest)) { httpResponse.setHeader("Access-Control-Allow-Origin", "*"); httpResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE"); httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); // response.setIntHeader("Access-Control-Max-Age", 1728000); httpResponse .setHeader( "Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Accept-Encoding, Authorization"); if (isPreFlightRequest(httpRequest)) { return; } } chain.doFilter(request, response); } public void init(FilterConfig filterConfig) { } public void destroy() { } public boolean isCorsRequest(HttpServletRequest request) { return (request.getHeader(HttpHeaders.ORIGIN) != null); } /** * Returns {@code true} if the request is a valid CORS pre-flight one. */ public boolean isPreFlightRequest(HttpServletRequest request) { return (isCorsRequest(request) && OPTIONS.equals(request.getMethod()) && request .getHeader(ACCESS_CONTROL_REQUEST_METHOD) != null); } }xmlJS-Code für Front-End-Tests erstellen, darunter den des Clients
<filter> <filter-name>corsFilter</filter-name> <filter-class>com.lvluo.web.filter.CorsFilter</filter-class> </filter> <filter-mapping> <filter-name>corsFilter</filter-name> <url-pattern>/api/*</url-pattern> </filter-mapping>
Das obige ist der detaillierte Inhalt vonBeispielcode-Freigabe, wie Cors ein vollständig domänenübergreifendes Java-Backend implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!