现在开发流行前后端分离,前端使用Ajax+html写页面,后端提供接口,便于以后开发和维护,但是这样也涉及到一个问题,前端在开发的时候页面不在后端项目,可能无法访问,所以tomcat要配置跨域访问,可以解决这个问题。
首先需要在tomcat中的lib文件夹增加两个jar包
1.cors-filter-2.4.jar 2.java-property-utils-1.9.1.jar
百度云下载 https://pan.baidu.com/s/1k8zgCgMrdjEm_6WQkf3E6Q
然后需要在Javaweb工程的web.xml文件中增加如下代码
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
<param-name>cors.allowOrigin</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET,POST,HEAD,PUT,DELETE</param-value>
</init-param>
<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>Accept,Origin,X-Requested-With,Content-Type,Last-Modified</param-value>
</init-param>
<init-param>
<param-name>cors.exposedHeaders</param-name>
<param-value>Set-Cookie</param-value>
</init-param>
<init-param>
<param-name>cors.supportsCredentials</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样就可以了,要注意的一点是,火狐和360急速等浏览器默认支持跨域访问,而chrome默认是不支持跨域访问的,如果一定要使用chrome跨域访问的话,需要在chrome快捷方式后面加一段代码 , --args --disable-web-security --user-data-dir 如下图