CORS을 Apache Wink에 어떻게 적용 할 수 있습니까? 기본적으로 필요한 것은 윙크가 보낸 모든 응답에 Access-Control-Allow-Origin: *
헤더를 추가하는 것입니다 (허용 된 발신지에 대해 *
을 대체합니다).Apache Wink에서 CORS를 처리하는 방법은 무엇입니까?
3
A
답변
1
가능한 해결책은 javax.ws.rs.core.Response
개체를 반환하는 것입니다. javax.ws.rs.core.Response.ResponseBuilder
을 사용하면 응답에 헤더를 추가 할 수 있습니다.
업데이트 :
또 다른 해결책은 모든 응답에 헤더를 추가합니다 윙크 위에 서블릿 필터 (javax.servlet.Filter)를 추가하는 것입니다.
Btw, JAX-RS 2에서는 필터와 인터셉터를 추가 할 수 있습니다.
1
늦은 답변이지만 이후 독자에게 유용 할 수 있습니다.
Response
.status(200)
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Headers", "origin, content-type, accept, authorization")
.header("Access-Control-Allow-Credentials", "true")
.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD")
.header("Access-Control-Max-Age", "1209600")
.entity(yourJsonResponse)
.build();
응답 유형 인 : javax.ws.rs.core.Response;
네하지만 그 의미 내가 (모든 요청의 사본을 포함 한 모든 요청에 대해이 헤더를 추가해야 다시 응답을 보낼 때 다음 코드를 사용하여 OPTIONS 요청 메소드를 처리하는). 그것은 많은 작업과 오류가 발생하기 쉽습니다. 나는 작동하는 체인에 사용자 정의 ResponseHandler를 추가하려고 시도했지만 모든 응답에 대해 헤더를 추가하는 방법을 알 수 없었다. –
또 다른 해결책은 모든 응답에 헤더를 추가하는 Wink 위에 javax.servlet.Filter를 추가하는 것입니다. – Tarlog
헤이 그게 작동해야합니다, 나는 그 시도를 줄 것이다. 감사! –