写在前面
老服务需要对前提提供一个借口,但是由于没有配置跨域访问,所以调试起来会比较麻烦,所以处理一下并且温习了一下spring xml配置过滤器的流程
解决方法
先把解决问题的方法写一下
package com.huatu.ztk.search.config;
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
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 {
System.out.println("work");
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "*");
response.setHeader("Access-Control-Allow-Headers", "*");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
这里先添加一个过滤器,用来给请求头添加相应的参数,之后需要在web.xml中对该过滤器进行配置声明
<filter>
<filter-name>CORSFilter</filter-name>
<filter-class>com.huatu.ztk.search.config.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CORSFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
容器在启动的时候回根据配置的路径去扫描过滤器,中配置的是过滤器的拦截范围,这里需要对外提供接口访问,所以直接配置成了/*
解决问题~~