解决前后端分离的 CORS 跨域资源共享问题
后端架api服务器,架设的过程中要在服务器端设置开启 CORS 跨域资源共享,否则前后端只能架设在同一个服务器上的同一个端口上,没有办法做到真正的分离。
这方法是基于tomcat 下后台api的,其他前端解决的办法可自行百度,google 。
添加 java-property-utils-1.9.1.jar ,cors-filter-2.4.jar 两个jar包到api的项目的 WEB-INF/lib/ 的目录下。
工程项目中web.xml中的配置如下:
<!-- CORS Filter start --> <filter> <filter-name>CORS</filter-name> <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> <init-param> <param-name>cors.allowGenericHttpRequests</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>cors.allowOrigin</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>cors.allowSubdomains</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>cors.supportedMethods</param-name> <param-value>GET, HEAD, POST, OPTIONS</param-value> </init-param> <init-param> <param-name>cors.supportedHeaders</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>cors.exposedHeaders</param-name> <param-value>X-Test-1, X-Test-2</param-value> </init-param> <init-param> <param-name>cors.supportsCredentials</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>cors.maxAge</param-name> <param-value>3600</param-value> </init-param> </filter> <filter-mapping> <filter-name>CORS</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- CORS Filter end -->
参考资料:http://software.dzhuvinov.com/cors-filter-installation.html
http://blog.csdn.net/newjueqi/article/details/27058765
文章来自:http://my.oschina.net/redhat1520/blog/518818