什么是跨域问题 ?Spring MVC 如何解决跨域问题 ?

1. 什么是跨域问题 ?

跨域问题指的是不同站点之间,使用 ajax 无法相互调用的问题。

跨域问题的 3 种情况:

  1. 协议不同,例如 http 和 https;
  1. 域名不同;
  • 一级域名、二级域名..不同,都算跨域请求
  1. 端口不同.
  • 80
  • 443

为什么要有跨域问题 ?

跨域问题本质上是浏览器的一种保护机制,它诞生的初衷是为了保证用户的安全,防止恶意网站窃取数据。但是这个保护机制也带来新的问题,它使得不同站点之间的正常调用,也会遇到阻碍。

2. Spring MVC 如何解决跨域问题 ?

  1. 定义一个配置类;

  2. 在配置类中写一个方法,返回 WebMvcConfigurer 对象,并重写 addCorsMappings 方法。

java 复制代码
@Configuration
public class MyConfiguration {
    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                // 设置允许跨域的请求规则【响应头里添加标识】
                registry.addMapping("/api/**");
            }
        };
    }
}

跨域问题,它的请求可以到达后端,只不过在后端返回响应给前端的时候,浏览器会做跨域问题的验证。

为什么不在前端验证 ?

因为前端代码是可以修改的,通过开发者工具都是可以伪造的,所以在前端验证没有意义。

相关推荐
代码栈上的思考3 小时前
深入解析Spring IoC核心与关键注解
java·后端·spring
It's now5 小时前
BeanRegistrar 的企业级应用场景及最佳实践
java·开发语言·spring
是一个Bug6 小时前
Spring事件监听器在电商订单系统中的应用
java·python·spring
Arva .6 小时前
讲一下 Spring 中用到的设计模式
java·spring·设计模式
enjoy编程8 小时前
Spring-AI 利用KeywordMetadataEnricher & SummaryMetadataEnricher 构建文本智能元数据
java·人工智能·spring
雨中飘荡的记忆8 小时前
Spring Test详解
java·后端·spring
It's now11 小时前
Spring Framework 7.0 的 BeanRegistrar 核心机制:告别复杂,直达本质
spring·源代码管理
就叫飞六吧11 小时前
考古spring.xml注册bean无法扫描目录问题
xml·java·spring
我是小妖怪,潇洒又自在11 小时前
springcloud alibaba(六)Sentinel 配置
spring·spring cloud·sentinel