SSM-遇见的一些小坑(五)解决跨域问题

当两台主机上的前后端分离的项目进行测试时,不用把项目发到另一个人的主机上进行配置测试,直接访问另一台主机,把他当成一个服务器来访问,但是这就有跨域的问题了,关于跨域问题可以看看这个:http://baijiahao.baidu.com/s?id=1600336765894546070&wfr=spider&for=pc

 下边来解决跨域问题:

一种很简单添加两句话就ok了,但是缺点也很明显,那就是你每个Servlet运行时都需要添加这个,会有点麻烦!

public void cross(HttpServletRequest request, HttpServletResponse response) {
		response.setHeader("Access-Control-Allow-Origin",request.getHeader("origin"));
		response.setHeader("Access-Control-Allow-Credentials", "true");
}

另一种:

先是pom.xml添加依赖:

 
  

     com.thetransactioncompany 

     cors-filter 

     2.5 

 

然后 web.xml添加三方过滤器


    
       CORS   

       com.thetransactioncompany.cors.CORSFilter   

          

           cors.allowOrigin  

           *  

          

          

           cors.supportedMethods  

           GET, POST, HEAD, PUT, DELETE  

          

          

           cors.supportedHeaders  

           Accept, Origin, X-Requested-With, Content-Type,Last-Modified  

          

          

           cors.exposedHeaders  

           Set-Cookie  

          

          

           cors.supportsCredentials  

           true  

          

      

      

       CORS   

       /*   

  

 

  关键参数的解释:

cors.allowOrigin指的可以通过的ip,代表所有,可以使用指定的ip,多个的话可以用逗号分隔,默认为 
cors.supportedMethods指的是请求方式 默认为* 
cors.supportedHeaders请求支持的头信息,默认为* 
cors.exposedHeaders暴露的头信息,默认的empy list 
cors.supportsCredentials支持证书,默认为true 
cors.maxAge 最大过期时间,默认为-1 
cors.tagRequests 默认为false 
cors.allowSubdomains允许子域 默认为false

 

你可能感兴趣的:(Java)