AngularJS not detecting Access-Control-Allow-Origin header?

后端 未结 9 1245
眼角桃花
眼角桃花 2020-11-28 11:20

I am running an angular app on a local virtualhost (http://foo.app:8000). It is making a request to another local VirtualHost (http://bar.app:8000) using $http.post

9条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-28 11:40

    CROS needs to be resolved from server side.

    Create Filters as per requirement to allow access and add filters in web.xml

    Example using spring:

    Filter Class:

    @Component
    public class SimpleFilter implements Filter {
    
    @Override
    public void init(FilterConfig arg0) throws ServletException {}
    
    @Override
    public void doFilter(ServletRequest req, ServletResponse resp,
                         FilterChain chain) throws IOException, ServletException {
    
        HttpServletResponse response=(HttpServletResponse) resp;
    
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
    
        chain.doFilter(req, resp);
    }
    
    @Override
    public void destroy() {}
    
    }
    

    Web.xml:

    
        simpleCORSFilter
        
            com.abc.web.controller.general.SimpleFilter
        
    
    
        simpleCORSFilter
        /*
    
    

提交回复
热议问题