Enable CORS Post Request from AngularJS to Jersey

前端 未结 4 1561
失恋的感觉
失恋的感觉 2020-12-05 20:17

I\'m attempting to post a JSON document from an AngularJS app to a Jersey REST service. The request fails, informing me that:

XMLHttpRequest cannot load http:/

4条回答
  •  星月不相逢
    2020-12-05 21:04

    Best way is to add Jersey Response filter which will add the CORS headers for all the methods. You don't have to change your webservices implementation.

    I will explain for Jersey 2.x

    1) First add a ResponseFilter as shown below

    import java.io.IOException;
    
    import javax.ws.rs.container.ContainerRequestContext;
    import javax.ws.rs.container.ContainerResponseContext;
    import javax.ws.rs.container.ContainerResponseFilter;
    
    public class CorsResponseFilter implements ContainerResponseFilter {
    
    @Override
    public void filter(ContainerRequestContext requestContext,   ContainerResponseContext responseContext)
        throws IOException {
            responseContext.getHeaders().add("Access-Control-Allow-Origin","*");
            responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
    
      }
    }
    

    2) then in the web.xml , in the jersey servlet declaration add the below

        
            jersey.config.server.provider.classnames
            YOUR PACKAGE.CorsResponseFilter
        
    

提交回复
热议问题