在做javaweb项目时有时会遇到外部网站向项目中发请求的情况,这时如果不设置项目可接受跨域请求时,则外部网站无法请求数据。下面介绍一种通过设置项目中的web.xml文件的方式实现跨域请求。
步骤:1、向项目中导入cors-filter-1.7.jar和java-property-utils-1.9.jar两个jar包;
2、在web.xml中加入如下过滤器:
<filter>
<description>跨域过滤器</description>
<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> -->
<param-value>http://项目所在的外网ip/项目名称/请求的方法</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<!-- <param-value>GET, POST, HEAD, PUT, DELETE</param-value> 设置请求方法的请求方式-->
<param-value>POST</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>
至此javaweb跨域请求访问完成。下面是jar包的百度盘链接。
http://pan.baidu.com/s/1qXMjnaO