springboot+vue后端解决跨域问题
vue配置
自定义过滤器配置
@Component
@Order(Integer.MIN_VALUE)
@Slf4j
public class Filter implements javax.servlet.Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
((HttpServletResponse)response).setHeader("Access-Control-Allow-Origin", ((HttpServletRequest) request).getHeader("Origin"));
((HttpServletResponse)response).setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
((HttpServletResponse)response).setHeader("Access-Control-Max-Age", "3600");
((HttpServletResponse)response).setHeader("Access-Control-Allow-Headers", "x-requested-with,Authorization,content-type,x-token");
((HttpServletResponse)response).setHeader("Access-Control-Allow-Credentials", "true");
if (((HttpServletRequest) request).getMethod().equals("OPTIONS")) {
((HttpServletResponse) response).setStatus(204);
response.getWriter().println("ok");
return;
}
chain.doFilter(request, response);
}
}
可能加上后还会报错但是可以根据前端console的提示基本就是因为下面这行代码中有未定义的header参数,添加完整即可(!!重要!!)
((HttpServletResponse)response).setHeader(“Access-Control-Allow-Headers”, “x-requested-with,Authorization,content-type,x-token”);