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 解决跨域的办法 


相关文章
|
3月前
“跨域”问题理解
“跨域”问题理解
14 0
|
2天前
|
Java
springbootv 2.4.0跨域
springbootv 2.4.0跨域
|
24天前
|
安全
什么是跨域?
什么是跨域?
|
3月前
|
Web App开发 JavaScript 开发者
|
4月前
|
JSON 缓存 前端开发
什么是跨域
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。
|
4月前
|
安全
什么是跨域,为什么会跨域?
什么是跨域,为什么会跨域?
85 1
|
5月前
|
Web App开发 前端开发 JavaScript
你能讲一下跨域吗
你能讲一下跨域吗
|
5月前
|
JSON 前端开发 安全
你了解跨域吗
你了解跨域吗
35 0
|
9月前
|
安全 JavaScript 前端开发
配置CORS跨域
出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。
330 0
|
11月前
|
安全 应用服务中间件 nginx
跨域 #29
跨域 #29
53 0