当前位置: 首页 > article >正文

跨域请求问题

跨域请求简介

跨域请求:通过一个域的JavaScript脚本和另外一个域的内容进行交互

域的信息:协议、域名、端口号

同域:当两个域的协议、域名、端口号均相同

如下所示:

同源【域】策略:在浏览器中存在一种安全策略就是同源策略,同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。

使用CORS解决跨域

官网地址:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

  • CORS的全称为Cross-origin Resource Sharing,中文含义是跨域资源共享

  • CORS 是跨域的一种解决方案,CORS 给了web服务器一种权限:服务器可以选择是否允许跨域请求访问到它们的资源。

第一种方法:后端服务器开启跨域支持

在要跨域的controller请求添加注解

@CrossOrigin(allowCredentials = "true" , originPatterns = "*" , allowedHeaders = "*") 

如图

弊端:每一个controller类上都来添加这样的一个接口影响开发效率、维护性较差

第二种方法:添加一个配置类配置跨域请求

@Component
public class WebMvcConfiguration implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")      // 添加路径规则
                .allowCredentials(true)               // 是否允许在跨域的情况下传递Cookie
                .allowedOriginPatterns("*")           // 允许请求来源的域规则
            	.allowedMethods("*")
                .allowedHeaders("*") ;                // 允许所有的请求头
    }
    
}


http://www.kler.cn/a/457369.html

相关文章:

  • 云从科技Java面试题及参考答案
  • 二、CSS基础
  • C++ —— 智能指针
  • 【开源社区openEuler实践】hpcrunner
  • 【pytorch】现代循环神经网络-2
  • 【网络】什么是路由协议(Routing Protocols)?常见的路由协议包括RIP、OSPF、EIGRP和BGP
  • 一种基于动态部分重构的FPGA自修复控制器
  • 美国站群服务器如何帮助实现有效的多域名管理?
  • 【深入理解SpringCloud微服务】Sentinel源码解析——FlowSlot流控规则
  • 从2024 re:Invent,看亚马逊云科技的AI布局
  • 【机器学习】分类
  • Element-plus自动导入
  • Crawler实现英语单词的翻译
  • linux内核如何实现TCP的?
  • 【Bug记录】黑马点评使用jmeter进行秒杀抢购时报401以及200后HTTP请求依旧异常的解决办法
  • Cpp::AVL树的机制详解与实现(23)
  • 产品原型设计
  • IntelliJ IDEA 远程调试
  • 在Ubuntu下通过Docker部署Misskey服务器
  • MATLAB语言的数据库编程
  • 基于STM32F103控制L298N驱动两相四线步进电机
  • 【递归与回溯深度解析:经典题解精讲(中篇)】—— LeetCode
  • 新版IDEA配置 Tomcat
  • 期末算法分析程序填空题
  • 32132132123
  • Leetcode经典题20--长度最小的子数组