如果使用Filter在web实现中不要加 @CrossOrigin("*")注解。
使用方法: 首先在在web层创建一个 Filter 包 中实现写法 如下
Filter可能会导错了
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component
public class filter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//配置全局跨域
HttpServletRequest re= (HttpServletRequest) servletRequest;
HttpServletResponse res= (HttpServletResponse) servletResponse;
//允许的域
res.setHeader("Access-Control-Allow-Origin", re.getHeader("Origin"));
//允许浏览器携带cookie
res.setHeader("Access-Control-Allow-Credentials","true");
//response.setHeader("Access-Control-Allow-Headers", "token");
res.setHeader("Access-Control-Allow-Methods", "*");
res.setHeader("Access-Control-Allow-Headers", "Content-Type,Access-Token");
res.setHeader("Access-Control-Expose-Headers", "*");
String method = re.getMethod();
if("OPTIONS".equals(method)){
}else{
filterChain.doFilter(re,res);
}
}
}