你这是由于springboot项目端口与vue项目端口不一致导致的跨域问题,解决方案有两:
//vue-cli3.0 里面的 vue.config.js做配置
devServer: {
proxy: {
'/rng': { //这里最好有一个 /
target: 'http://45.105.124.130:8081', // 后台接口域名
ws: true, //如果要代理 websockets,配置这个参数
secure: false, // 如果是https接口,需要配置这个参数
changeOrigin: true, //是否跨域
pathRewrite:{
'^/rng':''
}
}
}
}
controller层里加注解@CrossOrigin
@Component
public class OriginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException { }
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest)request;
HttpServletResponse httpServletResponse = (HttpServletResponse)response;
httpServletResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE");
httpServletResponse.setHeader("Access-Control-Max-Age", "3600");
httpServletResponse.setHeader("Access-control-Allow-Origin", "*");
httpServletResponse.setHeader("Access-Control-Allow-Headers", httpServletRequest.getHeader("Access-Control-Request-Headers"));
// httpServletResponse.setHeader("Access-Control-Allow-Credentials", "true");
// 跨域时会首先发送一个OPTIONS请求,这里我们给OPTIONS请求直接返回正常状态
if (httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())) {
httpServletResponse.setStatus(HttpStatus.OK.value());
}
// filterChain.doFilter(request, response);
String contentType = request.getContentType();
if(null != contentType && contentType.contains(MediaType.MULTIPART_FORM_DATA_VALUE)){
//说明是文件上传
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
MultipartHttpServletRequest resolveMultipart = commonsMultipartResolver.resolveMultipart(httpServletRequest);
filterChain.doFilter(resolveMultipart, response);
}else {
CommonHttpServletRequestWrapper requestWrapper = new CommonHttpServletRequestWrapper(httpServletRequest);
filterChain.doFilter(requestWrapper != null ? requestWrapper :request,response);
}
}
@Override
public void destroy() { }
}
参考一下https://blog.csdn.net/carbuser_xl/article/details/118545353