今天想起来之前买的域名通过备案了但一直忘记绑定公网ip
然后试了一下发现,虽然能够ping通域名,且前端正常显示,但一直报错跨域错误无法访问后端接口,而公网ip却可以可以正常访问
一直想不通,问群友,检查了Nginx的配置,前端后端的跨域也配置了(后端用注解配置),反复启动检查都不行还是老样子,实在不知道怎么解决。。。。。
最后想起来后端可以用WebMvcConfigurer配置跨域,立马上去看,好家伙 果然已经配置过了,而且跨域配置还是仅限本地的
@Configuration
public class WebMVCConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {//跨域配置
registry.addMapping("/**").allowedOrigins("http://localhost:8080");
}
}
同时我也在控制层用了@CrossOrigin注解配置跨域
应该是配置类的优先级比跨域注解优先级更高,导致进行了覆盖,立马改了回来
@Configuration
public class WebMVCConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {//跨域配置
registry.addMapping("/**").allowedOrigins("*").allowedMethods("*").allowedHeaders("*");
}
}
再次测试,成功