前言:之前做好的登陆接口,刚刚拿去给前端调用。发现前端那边报错,无法调到接口。因为我们后端的接口是在一台服务器上,前端(使用的是nodejs)的代码在另一台服务器上,导致两台服务器之间无法相互调用(服务器我们使用的是tomcat 7)。所以为了解决这个问题,前端那边在接口方面加了一段代码。同时,我们服务器端也同样需要加一个配置用来解决跨域。上网上查找了相关解决方案,配置到代码中,发现OK了。所以拿出来和大家分享一下,也为以后再遇到这种问题做个记录。好了,闲话少说,开始!
首先,上网搜索关键词 “服务器支持跨域” 发现如下几篇文章:
以上的文章可以参考,写的思路都很对,但是具体的操作没有写。所以我就在此把具体操作写出来就可以了。
首先我们项目中使用的是maven管理jar包,所以我要找到对应的jar包加入到pom中。
<!-- 跨域过滤器相关 -->
<dependency>
<groupId>com.thetransactioncompany</groupId>
<artifactId>java-property-utils</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.6.2</version>
</dependency>
<!-- 跨域过滤器相关 -->
然后接下来在项目中的web.xml中加入如下filter节点
<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>
</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>
接下来.........
还接下来什么呀。重启服务器,跑起来吧。骚年!!!