快捷搜索: 王者荣耀 脱发

CrossOrigin注解没有生效,解决方案集合

一:跨域(CORS)支持

Spring Framework 4.2 GA为CORS提供了第一类支持,使您比通常的基于过滤器的解决方案更容易和更强大地配置它。所以springMVC的版本要在4.2或以上版本才支持@CrossOrigin

二:@CrossOrigin注解的使用位置

1)在controller类上使用,对所有controller中的所有方法都生效
@Controller
@CrossOrigin
public class MyController {

}

三:在Controller中的方法上使用,只对该方法生效

@CrossOrigin
@RequestMapping(value = "/test",method = RequestMethod.POST)
public void test(@RequestBody TestRequest testRequest){
    
}

四:使用@CrossOrigin注解后不能跨域访问的解决办法

1)情况一:在方法上使用@CrossOrigin注解,但@RequestMapping注解中没有指定Get、Post方式,通过method = RequestMethod.POST/GET指定或者指定@CrossOrigin注解中的methods = {RequestMethod.POST}后,问题解决。
#在@CrossOrigin中methods指定方式
@CrossOrigin(methods = {RequestMethod.POST})

#或者@RequestMapping注解定义method
@RequestMapping(value = "/test",method = {RequestMethod.POST})

其他的几种情况,和情况一的详细解释请参考:

经验分享 程序员 微信小程序 职场和发展