Heim >Java >javaLernprogramm >Wie löst man CORS-Probleme in JAX-RS mit Jersey?
Verarbeitung von CORS mit JAX-RS unter Verwendung von Jersey
Problem:Bei der Bearbeitung von Anfragen tritt ein CORS-Problem auf mit JAX-RS und Jersey. Insbesondere setzt der Server nicht die erforderlichen CORS-Header, was zu dem Fehler „Auf der angeforderten Ressource ist kein ‚Access-Control-Allow-Origin‘-Header vorhanden“ führt.
Lösung: Um CORS in JAX-RS mit Jersey zu verarbeiten, müssen Sie einen ContainerResponseFilter implementieren. Der Unterschied in der Implementierung hängt davon ab, ob Sie Jersey 1.x oder 2.x verwenden.
Jersey 2.x:
import javax.ws.rs.container.ContainerRequestContext; import javax.ws.rs.container.ContainerResponseContext; import javax.ws.rs.container.ContainerResponseFilter; import javax.ws.rs.core.MultivaluedMap; @Provider public class CORSFilter implements ContainerResponseFilter { @Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) { MultivaluedMap<String, Object> headers = responseContext.getHeaders(); headers.add("Access-Control-Allow-Origin", "*"); headers.add("Access-Control-Allow-Headers", "CSRF-Token, X-Requested-By, Authorization, Content-Type"); headers.add("Access-Control-Allow-Credentials", "true"); headers.add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD"); } }
Jersey 1.x:
import com.sun.jersey.spi.container.ContainerResponse; import com.sun.jersey.spi.container.ContainerResponseFilter; @Provider public class CORSFilter implements ContainerResponseFilter { @Override public ContainerResponse filter(ContainerResponse response) { response.getHttpHeaders().add("Access-Control-Allow-Origin", "*"); response.getHttpHeaders().add("Access-Control-Allow-Headers", "CSRF-Token, X-Requested-By, Authorization, Content-Type"); response.getHttpHeaders().add("Access-Control-Allow-Credentials", "true"); response.getHttpHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD"); return response; } }
Zusätzlich Hinweise:
Das obige ist der detaillierte Inhalt vonWie löst man CORS-Probleme in JAX-RS mit Jersey?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!