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

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

为什么不在前端验证 ?

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

相关推荐
Java成神之路-8 小时前
SpringMVC 响应实战指南:页面、文本、JSON 返回全流程(Spring系列13)
java·spring·json
砍材农夫8 小时前
spring-ai 第六模型介绍-聊天模型
java·人工智能·spring
云烟成雨TD9 小时前
Spring AI Alibaba 1.x 系列【5】ReactAgent 构建器深度源码解析
java·人工智能·spring
Flittly10 小时前
【SpringAIAlibaba新手村系列】(15)MCP Client 调用本地服务
java·笔记·spring·ai·springboot
Flittly10 小时前
【SpringAIAlibaba新手村系列】(14)MCP 本地服务与工具集成
java·spring boot·笔记·spring·ai
mfxcyh10 小时前
基于xml、注解、JavaConfig实现spring的ioc
xml·java·spring
Flittly10 小时前
【SpringAIAlibaba新手村系列】(13)Tool Calling 函数工具调用技术
java·spring boot·spring·ai
xdscode11 小时前
Spring 依赖注入方式全景解析
java·后端·spring
小江的记录本12 小时前
【JEECG Boot】 JEECG Boot——数据字典管理 系统性知识体系全解析
java·前端·spring boot·后端·spring·spring cloud·mybatis