当前端页面与后台运行在不同的服务器时,就必定会出现跨域这一问题,本篇简单介绍解决跨域的一种常用方案
1、错误如图,前端请求后台报错
2、Java后台添加Filter解决,代码如下
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
public class WebContentFilter implements Filter {
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse httpServletResponse=(HttpServletResponse) response;
httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
httpServletResponse.setHeader("Access-Control-Allow-Headers", "Authentication");
chain.doFilter(request, httpServletResponse);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
3、web.xml添加配置项
web.xml配置:
<!-- 跨域 -->
<filter>
<filter-name>ContentFilter</filter-name>
<filter-class>com.xxx.xxx.WebContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ContentFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>