跨域 @CrossOrigin("*") 注解不可以跨,可以使用这个Filter

                  如果使用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);
}
}
}

猜你喜欢

转载自www.cnblogs.com/cjkf/p/11857864.html