4
我試圖端口this CORS filter到JAX-RS 2.在ContainerResponseFilter的(JAX-RS 2)獲取響應
不過,我看不出如何讓Response對象(如舊代碼)從ContainerResponseContext我通過了ContainerResponseFilter的覆蓋方法。
如果有一種更優雅的方式來使用JAX-RS 2來執行CORS,那當然會更好。提前致謝。
我試圖端口this CORS filter到JAX-RS 2.在ContainerResponseFilter的(JAX-RS 2)獲取響應
不過,我看不出如何讓Response對象(如舊代碼)從ContainerResponseContext我通過了ContainerResponseFilter的覆蓋方法。
如果有一種更優雅的方式來使用JAX-RS 2來執行CORS,那當然會更好。提前致謝。
THRE的反應是直接訪問爲的ContainerResponseContext
:
@Provider
public class ResponseCorsFilter implements ContainerResponseFilter{
@Override
public void filter(ContainerRequestContext requestContext,
ContainerResponseContext responseContext) throws IOException {
responseContext.getHeaders()
.putSingle("Access-Control-Allow-Origin","*");
responseContext.getHeaders()
.putSingle("Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE");
List<String> reqHead=requestContext.getHeaders()
.get("Access-Control-Request-Headers");
if(null != reqHead){
responseContext.getHeaders()
.put("Access-Control-Allow-Headers",
new ArrayList<Object>(reqHead));
}
}
}
但是使用這個我怎樣才能得到我的迴應的身體嗎? – HybrisFreelance
有'ContainerResponseContext.setEntity'方法允許替換整個實體。 –
謝謝... 我可以做'ContainerRequestContext'上的相反操作嗎? 我的意思是我想從過濾器中的'ContainerRequestContext'獲取POJO。我們可以從'ContainerRequestContext'獲得'EntityStream',但是我需要'Entity',因爲我們在'ContainerResponseContext''中獲取 – HybrisFreelance