[java] Wie man mit CORS JAX-RS mit Jersey handhabt


Answers

Die andere Antwort könnte streng korrekt, aber irreführend sein. Der fehlende Teil ist, dass Sie Filter aus verschiedenen Quellen zusammen mischen können. Auch wenn Jersey möglicherweise keinen CORS-Filter liefert (keine Tatsache, die ich überprüft habe, aber ich vertraue der anderen Antwort darauf), können Sie den eigenen CORS-Filter von tomcat verwenden .

Ich benutze es erfolgreich mit Jersey. Ich habe meine eigene Implementierung von Basic Authentication Filter, zum Beispiel zusammen mit CORS. Das Beste daran ist, dass der CORS-Filter in Web-XML und nicht in Code konfiguriert ist.

Question

Ich entwickle eine Java-Script-Client-Anwendung, auf Serverseite muss ich mit CORS umgehen, alle Dienste, die ich in JAX-RS mit JERSEY geschrieben habe. Mein Code:

@CrossOriginResourceSharing(allowAllOrigins = true)
@GET
@Path("/readOthersCalendar")
@Produces("application/json")
public Response readOthersCalendar(String dataJson) throws Exception {  
     //my code. Edited by gimbal2 to fix formatting
     return Response.status(status).entity(jsonResponse).header("Access-Control-Allow-Origin", "*").build();
}

Ab sofort bekomme ich Fehler. Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. Origin ' http: // localhost: 8080 ' ist daher nicht erlaubt. "

Bitte helfen Sie mir dabei.

Danke und Grüße Buddha Puneeth




Entfernen Sie die Annotation " @CrossOriginResourceSharing(allowAllOrigins = true) "

Dann Antwort wie folgt:

return Response.ok()
               .entity(jsonResponse)
               .header("Access-Control-Allow-Origin", "*")
               .build();

Aber die jsonResponse sollte durch ein POJO-Objekt ersetzt werden!




Mit JAX-RS können Sie einfach die Annotation @CrossOrigin(origin = yourURL) zu Ihrem Ressourcen-Controller hinzufügen. In Ihrem Fall wäre @CrossOrigin(origin = "http://localhost:8080") aber Sie könnten auch @CrossOrigin(origin = "*") , um jede Anfrage über Ihren Webservice zu ermöglichen.
Sie können dies für weitere Informationen überprüfen.




Related