跨源请求被阻止 - Firefox

时间:2015-05-28 09:46:39

标签: angularjs firefox cors

我在本地计算机上部署了一些休息服务(在localhost上运行)。我正在使用我的角度js应用程序访问这些服务。但是当我在firefox中部署它时,我得到了跨源请求阻止异常但我可以在其他浏览器IE和Chrome上部署相同的角度应用程序。请帮我解决这个问题。

的ErrorMessage:
跨源请求已阻止:同源策略禁止在http://localhost:8080/helloworld/rest/sayhi读取远程资源。这可以通过将资源移动到同一域或启用CORS来解决。

$ http({url:'http://localhost:8080/helloworld/rest/sayhi/'+ $ scope.userquery,方法:'GET',dataType:'json',                 transformResponse:function(data){                    console.log(“transformlog”+ data);
                   return JSON.parse(data);                 },                  标题:{                    'Content-Type':'application / json' 然后(function(data){console.log(data);});

spring mvc服务托管在tomcat服务器中。服务器都是浏览器都在某台机器上。

2 个答案:

答案 0 :(得分:0)

http://patrickgrimard.com/2013/12/12/cross-origin-resource-sharing-cors-requests-with-spring-mvc/

我按照上面的链接。我使用过滤器在我的spring-mvc-rest控制器中添加了Cors标头,它对我来说非常适合。

答案 1 :(得分:0)

我认为,实际上它在服务器端是个问题。您应该在spring应用程序上启用CORS支持。可以通过添加过滤器

来完成
public class CORSFilter extends OncePerRequestFilter {

    private final Logger LOG = LoggerFactory.getLogger(CORSFilter.class);

    @Override
    protected void doFilterInternal(HttpServletRequest req, HttpServletResponse res, FilterChain chain) throws ServletException, IOException {
        LOG.info("Adding CORS Headers ........................");        
        res.setHeader("Access-Control-Allow-Origin", "*");
        res.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
        res.setHeader("Access-Control-Max-Age", "3600");
        res.setHeader("Access-Control-Allow-Headers", "X-PINGOTHER,Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization");
        res.addHeader("Access-Control-Expose-Headers", "xsrf-token");
        if ("OPTIONS".equals(req.getMethod())) {
            res.setStatus(HttpServletResponse.SC_OK);
        } else { 
            chain.doFilter(req, res);
        }        
    }
}

我是通过链接angularjs spring cross-origin request blocked

找到的