• 什么是跨域?怎么解决跨域问题


    同源策略限制

    同源策略限制指的是用户输入的URL包含的协议,域名,端口都完全相同。如果有一项不同,浏览器就会觉得有安全风险。

    协议指的是http协议和https协议,域名也就是ip,例如我们常用的localhost,端口就是port,例如我们常用的8080。

    http协议和https协议:

    http协议传输的数据都是未加密的,也就是明文的,因此使用http协议传输隐私的信息是非常不安全的。

    而为了这些隐私数据能够加密传输就诞生了https,简单来说,https是由ssl+http协议构建的,可以进行加密传输,要比http协议更安全。

    https主要有两个作用,第一是建立一个信息安全通道,用来保证数据传输的安全性;第二就是确认网站的真实性。

    http和https的区别:

    1、http不需要申请证书,而https需要申请ca证书,因此https需要一定的费用成本。

    2、http下的信息是明文传输的,而https协议是由ssl+http协议构建的,可进行加密传输,https是一个身份认证的网络协议,可以防止传输信息被窃取篡改,比http协议更安全。

    3、http和https使用的是完全不同的连接方式,所有它们的端口也不一样,前者是80端口,后者是443端口。

    解决跨域的三种方案

    1、在目标方法上添加@CrossOrigin

    1. @GetMapping("/findAll")
    2. @ApiOperation(value = "查询医院设置表所有信息")
    3. @CrossOrigin
    4. public Result findAll() {
    5. return hospitalSetService.findAll();
    6. }

    2、添加CORS过滤器

    1. @Configuration
    2. public class CrosConfig{
    3. @Bean
    4. public CorsFilter corsFilter(){
    5. CorsConfiguration cors = new CorsConfiguration();
    6. cors.addAllowedOrigin("*");
    7. cors.addAllowedHeader("*");
    8. cors.addAllowedMethod("*");
    9. UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    10. source.registerCorsConfiguration("/**",cors);
    11. return new CorsFilter(source);
    12. }
    13. }

    3、实现WebMvcConfigurer接口,重写addCorsMappings方法

    1. @Configuration
    2. public class CrosConfig implements WebMvcConfigurer{
    3. @Override
    4. public void addCorsMappings(CorsRegistry registry) {
    5. registry.addMapping("/**")
    6. .allowedOrigins("*")
    7. .allowedMethods("GET","POST","PUT","DELETE","HEAD","OPTIONS")
    8. .allowCredentials(true)
    9. .maxAge(3600)
    10. .allowedHeaders("*");
    11. }
    12. }
  • 相关阅读:
    办公必备的5款极具效率的软件,关键是各个都是免费无广告
    week10|查阅文章
    print() 函数
    原则、语言、编译、解释
    中文编程工具免费版下载,中文开发语言工具免费版下载
    maven 私有仓库配置
    一个开源轻量级的C#代码格式化工具(支持VS和VS Code)
    升级 Xcode 15模拟器 iOS 17.0 Simulator(21A328) 下载失败
    图像处理之图像的几何变换
    C/C++内存管理(malloc/calloc/realloc/free/new/delete/operator new/operator delete)
  • 原文地址:https://blog.csdn.net/weixin_55076626/article/details/127839144