1.js相互之间请求跨域
最后,看了tomcat的配置文档,弄了一个,问题就解决了。
- 打开tomcat安装目录 -> 打开 conf 目录 -> 打开web.xml文件
- 将如下代码复制到web.xml文件中(我是放在 460左右的位置,不要放在最前面和最后面,一定要放中间)
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
</init-param>
<init-param>
<param-name>cors.support.credentials</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
// 然后, 重启服务器就行了
2.前端请求后台接口跨域
rest接口跨域解决
/*
* @Project_Name: iqoo-parent
* @File_Name: CorsFilter
* @Package_Name: cn.iqoo.api.filter
* @Date: 17-3-2 下午10:41
* @Creator: jonath
* @Line: ----------------------------------------
*/
package
cn.iqoo.api.filter;
import
javax.servlet.*;
import
javax.servlet.http.HttpServletResponse;
import
java.io.IOException;
/**
* TODO:
*
* @author: jonath
* @date: 17-3-2
*/
public
class
CorsFilter
implements
Filter {
@Override
public
void
init(FilterConfig filterConfig)
throws
ServletException {
}
@Override
public
void
doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws
IOException, ServletException {
HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
httpResponse.addHeader(
"Access-Control-Allow-Origin"
,
"*"
);
httpResponse.setHeader(
"Access-Control-Allow-Headers"
,
"Origin, X-Requested-With, Content-Type, Accept"
);
httpResponse.setHeader(
"Access-Control-Allow-Methods"
,
"GET, PUT, DELETE, POST"
);
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public
void
destroy() {
}
}