问题
以前在编写后端的控制层代码时
前端自己写请求经常会遇到跨域问题。
为什么呢
一开后端服务 端口8080
直接从IDEA 里打开
静态资源文件html 里面有jquery的请求
进浏览器发现端口是 63342
发送请求 被cors 拦截
显然127.0.0.1:63342 和127.0.0.1:8080 不是一个端口
抱一个
Access to XMLHttpRequest at xxx orgin xxx ...
跨域不能访问!
那行我改,我改个后端代码
我在Controller上加
@CrossOrigin("*")
可以最简单的解决 当然这样不安全
SpringBoot下可以这样配置注解版本
@Configuration
public class MyConfiguration {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
// 这样可以调整颗粒度 更加自由
registy.addMapping("/api");
}
};
}
}
xml版本
<mvc:cors>
<mvc:mapping path=""/>
</mvc:cors>
小结
只有XMLHttpRequest请求才有跨域
常见的就是原生Xml请求
jquery封装的XmL请求
普通的href = "https://xxx"这种不会出现
非同源,非同端,非同协议 产生跨域