什么是跨域问题 ?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/**");
            }
        };
    }
}

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

为什么不在前端验证 ?

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

相关推荐
CodeStats6 小时前
【Spring事务】Spring事务注解 @Transactional 完整体系:从 MySQL 隔离级别到 MyBatis 原理详解
java·spring·mybatis·事务·transactional
憧憬成为java架构高手的小白13 小时前
黑马八股--spring框架学习
java·学习·spring
Nuanyt17 小时前
SSM 学习记录 第二部分 Spring整合Mybatis&Junit AOP核心概念 Spring事务管理 SpringMVC 请求与响应 Rest风格
java·spring·junit·mybatis·restful
米码收割机18 小时前
【SSM】Spring MVC_MyBatis SSM商城系统(源码+论文)【独一无二】
spring·mvc·mybatis
用户31268748772018 小时前
@Autowired 注入的是代理对象?Spring AOP 代理选择原理一次讲透
java·spring
小罗水19 小时前
第3章 从单体项目到 Spring Cloud 微服务
spring·spring cloud·微服务
Bug收容所19 小时前
12305项目学习day5
java·spring boot·redis·mysql·spring·rocketmq
lichuangcsdn19 小时前
【Spring AI 学习(三)】实现简单的对话
java·人工智能·学习·spring·spring ai
长不胖的路人甲20 小时前
Spring Bean 完整生命周期
java·spring·rpc
辰海Coding20 小时前
MiniSpring框架学习笔记-拦截器 :如何在方法前后进行拦截?
java·笔记·学习·spring·minispring