@CrossOrigin注解加在方法上不起作用的原因及解决办法

本文讨论了CORS在Spring框架中的行为,指出默认情况下控制器类的策略与在方法上添加@CrossOrigin注解的冲突。文章解析了如何类级别配置被具体方法注解覆盖的问题,并给出了在Spring中解决跨域问题的建议。
摘要由CSDN通过智能技术生成

原因:

CORS的默认策略和spring的具体方法优先原则导致;

释义:

CORS的默认策略是整个controller类;

Spring的“具体方法优先原则”:在具体方法和类上都加上相同注解,优先方法的注解生效;

问题描述:

现在@CrossOrigin注解没在controller类上加,只在controller中的某个方法上加;

刨析:

@CroessOrigin注解的默认策略是整个controller类,现在controller类上没有配置,所以没有采取@CroessOrigin的默认策略,即整个controller类受到跨域问题影响;

在controller中的某个方法上加,按照Spring的具体方法优先原则,会优先执行此方法上的注解配置,即具体方法覆盖类级别配置(类上有配置);

但目前是只有方法上有@CroessOrigin注解,而类上没有,所以整个controller中的所有方法会受到跨域问题影响,只在某个方法上加@CroessOrigin注解,按照spring中的“具体方法优先”原则,它要覆盖类级别配置,但是此时类上没有相关配置,所以导致具体方法上的@CroessOrigin注解失效。

解决办法:

controller类上加@CroessOrigin注解,指定具体属性;

如果想在某个方法上进行测试操作,controller类和此方法上都加@CroessOrigin,具体方法上的注解指定属性;

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值