zoukankan      html  css  js  c++  java
  • 解决跨域问题的后端解决方案

    理解跨域,我们首先应该理解web的同源策略。

    什么是同源策略?

    • 它是浏览器的一个安全策略,就是限制当前源与其它源进行交互,这样就能阻隔恶意文档和减少可能被攻击的媒介。

    何为同源?

    • 若有两个URL,只有协议(protocol)、域名(host)、端口号(port),三者相同时,才能被称之为同源。

    何为跨域访问?

    • 当要在不同源之间进行数据交互时,这个过程跨域就可称之为跨域访问。

    • 那我的项目举个例子(前后端分离项目,开发环境,Vue运行http://localhost:8081,后端运行http://localhost:8080)


      前端登陆页面的表单数据通过Ajax提交给后端的/login接口进行处理,此时就是在跨域访问

    后端解决跨域的一种方案

    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.CorsRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    @Configuration
    public class CorsConfig implements WebMvcConfigurer {
    
        @Override
        public void addCorsMappings(CorsRegistry corsRegistry){
            corsRegistry.addMapping("/**")//允许跨域的访问路径
                        .allowedOrigins("http://localhost:8081")//允许跨域访问的源
                        .allowedMethods("POST","GET","PUT","OPTIONS","DELETE")//允许请求方法
                        .allowCredentials(true)//是否允许发送cookie
                        .maxAge(3600)//预检的间隔时间
                        .allowedHeaders("*");//允许跨域访问的header
        }
    }
    
  • 相关阅读:
    Vivado Non-Project Flow
    使用ngspice进行电路仿真
    Synopsys DC综合脚本示例
    解决Vivado XSDK在Ubuntu系统上自带UART Terminal Crash问题
    Ubuntu-18.04 LTS UEFI 安装U盘制作
    嵌入式处理器通过UART实现scanf和printf
    用于RISC-V的Makefile示例
    利用SSH隧道技术穿越内网访问远程设备
    C++基础-多态
    C++基础-继承
  • 原文地址:https://www.cnblogs.com/masker99/p/14742661.html
Copyright © 2011-2022 走看看