CorsConfig 跨域 初认识

简介: CorsConfig 跨域 初认识

CorsConfig 跨域

分析次报错是因为 服务访问的时候被判定为断域,

跨域的打头兵,其实跨域还么有发出去

跨域请求的流程: 浏览器 先会给服务器发送一个 预检请求 ,服务器 返回同意不同意 ,同意的话 浏览器 在发送真实的请求 ,服务再返回响应成功是否

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS

跨域代码:

package com.atguigu.gulimall.gateway.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsConfigurationSource;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.server.ServerWebExchange;
@Configuration
public class GulimallCorsConfiguration {
//写跨域相关的代码
    @Bean   //注入到容器中
    public CorsWebFilter corsWebFilter() {
            //CorsConfigurationSource 他的实现是 UrlBasedCorsConfigurationSource
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
           //1.配置跨域 容许那些头跨域
        corsConfiguration.addAllowedHeader("*");
            //2.容许那些请求方式跨域   get/post..
        corsConfiguration.addAllowedMethod("*");
            //3.容许那些请求来源跨域
        corsConfiguration.addAllowedOrigin("*");
             //4.是否容许携带 酷开
        corsConfiguration.setAllowCredentials(true);
        //代表任何路径 全部   corsConfiguration 配置的相关参数
        //registerCorsConfiguration  注册跨域的配置
        source.registerCorsConfiguration("/**",corsConfiguration);
        /*CorsConfigurationSource corsConfigurationSource = new CorsConfigurationSource() {
            @Override
            public CorsConfiguration getCorsConfiguration(ServerWebExchange exchange) {
                return null;
            }
        }
*/
        return new CorsWebFilter(source);
    }
}

理解:

大体意思为 :

Access to XMLHttpRequest at 'http://localhost:88/api/sys/login' 
from origin 'http://localhost:8001' has been blocked by CORS policy:
 Response to preflight request doesn't pass access control check: No
  'Access-Control-Allow-Origin' header is present on the requested 
  resource.
http://localhost:88/api/sys/login  访问到   http://localhost:8001的时候   
请求被堵塞了
"cors"(跨域)      Access-Control-Allow-Origin' 访问 控制 请求 来源 
浏览器为了安全默认拒绝这些跨域的请求
怎么解决: 浏览器会检查头 ,   Access-Control-Allow-Origin 解决跨域的办法 


相关文章
|
XML Java 数据库
探索 Spring Boot 中的 @Configuration 注解:核心概念与应用
【4月更文挑战第20天】在 Spring Boot 项目中,@Configuration 注解扮演了一个关键角色,它标识一个类作为配置源,这些配置用于定义和管理 Spring 应用程序中的 Bean
2417 7
|
存储 机器学习/深度学习 传感器
langchain 入门指南 - 实现一个多模态 chatbot
langchain 入门指南 - 实现一个多模态 chatbot
423 0
|
JavaScript 前端开发
vue3通过render函数实现一个菜单下拉框
【8月更文挑战第18天】vue3通过render函数实现一个菜单下拉框
373 0
|
Windows
解决Windows 11/10 上的网络打印机错误 0x0000011b
解决Windows 11/10 上的网络打印机错误 0x0000011b
1153 5
|
11月前
|
开发框架 Dart Android开发
安卓与iOS的跨平台开发:Flutter框架深度解析
在移动应用开发的海洋中,Flutter作为一艘灵活的帆船,正引领着开发者们驶向跨平台开发的新纪元。本文将揭开Flutter神秘的面纱,从其架构到核心特性,再到实际应用案例,我们将一同探索这个由谷歌打造的开源UI工具包如何让安卓与iOS应用开发变得更加高效而统一。你将看到,借助Flutter,打造精美、高性能的应用不再是难题,而是变成了一场创造性的旅程。
|
存储 监控 算法
XXL-JOB内部机制大揭秘:让任务调度飞起来
【8月更文挑战第14天】在大数据时代,高效的任务调度系统是支撑业务稳定运行与快速迭代的基石。XXL-JOB,作为一款轻量级、分布式任务调度平台,凭借其灵活的配置、强大的扩展性和高可用特性,在众多任务调度框架中脱颖而出。今天,我们就来深入揭秘XXL-JOB的内部机制,看看它是如何让任务调度“飞起来”的。
704 0
|
Python
Python教程:一文了解Python的深拷贝与浅拷贝
理解 Python 中的深拷贝(deep copy)和浅拷贝(shallow copy)是非常重要的,特别是在处理嵌套结构的数据时。让我们深入探讨这两个概念,并通过代码示例进行说明。
515 4
|
弹性计算 关系型数据库 MySQL
刚刚:2023阿里云双11优惠活动开启了云服务器87元一年起
刚刚:2023阿里云双11优惠活动开启了云服务器87元一年起,2023阿里云双十一优惠活动已经开启了,轻量2核2G服务器3M带宽优惠价87元一年、2核4G4M带宽优惠价165元一年,云服务器ECS经济型e实例2核2G3M固定带宽优惠价格99元一年,还有2核4G、2核8G、4核8G、4核16G、8核32G等配置报价,云服务器e实例、云服务器u1、c7、g7、c8i、g8i等ECS实例
374 0
|
SQL Java
idea mybatis-plus之MybatisX插件小知识(代码生成 哦)(二)
idea mybatis-plus之MybatisX插件小知识(代码生成 哦)(二)
495 0
|
前端开发 JavaScript 开发者
Vue3.0商店后台管理系统项目实战-vue3搭配Element Plus框架使用
Vue3.0商店后台管理系统项目实战-vue3搭配Element Plus框架使用
409 0