我們遇到一種情況,UI在一臺主機上運行,並且正嘗試與另一臺主機上可用的資源進行通信。這裏的問題是,用戶界面無法調用資源,因爲該資源位於不同的域中,除非服務器啓用了CORS,否則跨域請求將無法工作。如何在java中的服務器端代碼上啓用CORS
爲了使服務器CORS啓用,我們已經完成了以下更改。
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.ext.Provider;
import java.io.IOException;
@Provider
public class CORSFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext request, ContainerResponseContext response) throws IOException
{
response.getHeaders().add("Access-Control-Allow-Origin", "*");
response.getHeaders().add("Access-Control-Allow-Headers","origin, content-type, accept, authorization");
response.getHeaders().add("Access-Control-Allow-Credentials", "true");
response.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
}
}
但是我無法弄清楚我需要映射/配置這個類的位置,因爲沒有配置文件(web.xml)。 我對於在服務器端啓用CORS沒有太多的知識。 請建議如何進一步處理。
您使用的春天開機? –
您使用的是什麼應用程序服務器?這應該不需要額外的配置。 – assylias
我們不使用Spring啓動..我們使用的是netty服務器。 –