说起跨域说实话网上有很多的方式,有些是前端通过jsonp来解决问题,现在我们用后台java的格式来书写跨域中遇到的问题。
我们遇到这样的问题一般写一个跨域 过滤器来解决这样的问题:
/**
* 跨域过滤器
*/
@Component
public class CorsControllerFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException {
HttpServletResponse res = (HttpServletResponse) httpServletResponse;
res.setContentType("text/html;charset=UTF-8");
// //本地配置
// res.setHeader("Access-Control-Allow-Origin","*");
//服务器配置
res.setHeader("Access-Control-Allow-Origin", "*"); //* 代表所有的服务器,如果需要可以改成自己的服务器ip地址
res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE ,PUT");
//在这里放开所以的请求头,如果不需要那么可以解封下面的
res.setHeader("Access-Control-Allow-Headers","*");
// res.setHeader("Access-Control-Allow-Headers", "Origin, No-Cache, " +
// "X-Requested-With, If-Modified-Since,"
// + " Pragma, Last-Modified, Cache-Control, Expires, Content-Type, ssoUserToken, "
// + "X-E4M-With,userId,token,Authorization,deviceId,Access-Control-Allow-Origin,"
// + "Access-Control-Allow-Headers,Access-Control-Allow-Methods");
res.setHeader("Access-Control-Allow-Credentials", "true");
filterChain.doFilter(httpServletRequest, httpServletResponse);
}
}
上述的问题应该可以解决你所遇见的问题。