解决前后端分离的 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
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3