那为啥我不加这个注解,,我内网穿透之后。把当前接口地址填写给阿里云短信服务的回调url,也能被阿里云那边访问到啊。。有大神解答一下么。。
跨域是指协议,ip,端口不相同的情况下。
@CrossOrigin加在Controller本身是解决跨域问题的,你去了也能访问接口,服务器访问服务器不存在跨域,当然可以访问
先理解什么是跨域吧。 http协议中没有跨域这个概念。 通过http客户端(不管是浏览器还是java中的httpclient)调用http接口不存在跨域一说,都可以直接调用。 什么情况才是跨域? 在浏览器中执行js脚本,通过ajax直接调用后端的http接口时,如果当前js脚本所处的网站和后端接口的网站不是同一个,这个时候浏览器就判定是跨域了,浏览器会先发一个option请求到这个接口,询问一下这个接口是否允许跨域(后端是把允不允许跨域的信息放在响应头中的)。如果允许则再次请求这个接口,如果不允许则请求失败。
springmvc中可以统一设置跨域。
@SpringBootConfiguration
public class WebMvcConfig implements WebMvcConfigurer {
//跨域设置
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("POST", "GET")
.maxAge(3600)
.allowCredentials(true);
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632