一般跨域,除了配置还是配置,网页出不来就是你ngnix 配置出问题,网页出来了,请求报红,看是否后端拦截,或者配置。 首先开一个网页断点,看是否跳过ajax 请求直接errer,像这种都可能是后端配置问题。 建议不要用注解 可以在后端配置请求头 以下两种即可解决, HttpServletResponse response = (HttpServletResponse) res; HttpServletRequest request = (HttpServletRequest) req; response.setHeader("Access-Control-Allow-Origin", "*"); // 设置允许所有跨域访问 response.setHeader("Access-Control-Allow-Methods", "POST,GET,PUT,OPTIONS,DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "Origin,X-Requested-With,Content-Type,Accept,Authorization,token"); response.setHeader("Access-Control-Allow-Credentials", "true");、 response.setHeader("Access-Control-Allow-Origin", "*"); // 设置允许所有跨域访问 response.setHeader("Access-Control-Allow-Methods", "POST,GET,PUT,OPTIONS,DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "Origin,X-Requested-With,Content-Type,Accept,Authorization,token"); response.setHeader("Access-Control-Allow-Credentials", "true");、 如果你使用是以下方法 并且跨域失败,说明这方法没用 return new WebMvcConfigurer() { /** * 设置头 使可以跨域访问 * @param registry * @since 4.2 */ @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE") .maxAge(3600) .allowCredentials(true); }
更换后 的代码
@Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); // 设置访问源地址 config.addAllowedOrigin("*"); // 设置访问源请求头 config.addAllowedHeader("*"); // 设置访问源请求方法 config.addAllowedMethod("*"); // 对接口配置跨域设置 source.registerCorsConfiguration("/**", config); return new CorsFilter(source); }