spring+springmvc+mybatis項目在前後端聯調時出現以下報錯
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin’
說明出現了跨域問題。
可以有以下解決方法。
1.在controller類上加註解
@CrossOrigin(origins = "*", maxAge = 3600)
注:CrossOrigin是spring的註解
2.可以在web.xml添加過濾器
紅框標註的class文件根據自己開發的實際位置填寫。
類文件如下:
@Component
public class CORSFilteUtil extends OncePerRequestFilter{
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.setHeader("Access-Control-Allow-Credentials", "true");
response.addHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
response.addHeader("Access-Control-Allow-Headers", "Content-Type");
response.addHeader("Access-Control-Max-Age", "1800");//30 min
filterChain.doFilter(request, response);
}
}
跨域問題可以解決了。