范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

SpringBoot进阶之处理跨域问题(CORS)

  SpringBoot进阶之处理跨域问题(CORS)前言
  大家好,一直以来我都本着 用最通俗的话理解核心的知识点, 我认为所有的难点都离不开  「基础知识」  的铺垫 适合人群学完Java基础  想通过Java快速构建web应用程序  想学习或了解SpringBoot
  「大佬可以绕过 ~」  背景
  如果你是一路看过来的,很高兴你能够耐心看完。之前带大家学了 Springboot 基础部分,对基本的使用有了初步的认识, 接下来的几期内容将会带大家进阶使用,会先讲解基础中间件 的使用和一些场景的应用,或许这些技术你听说过,没看过也没关系,我会带大家一步一步的入门,耐心看完你一定会有收获 ~ 情景回顾
  上期带大家学习了 Springboot 中如何集成MyBatis分页插件PageHelper 以及它的一个基本使用, 本期将带大家学习SpringBoot 中如何处理跨域问题的,同样的,我们集成到Springboot 中。最近github可能会被墙,所以我把源码放到了国内gitee上,本节我们依然使用上期的代码 往期内容我的博客  Springboot入门  Springboot基础(一)  Springboot基础(二)  Springboot基础(三)  Springboot基础(四)  Springboot基础(五)  SpringBoot进阶之缓存中间件Redis  SpringBoot进阶之MyBatis分页插件  项目源码(持续更新 )springboot-all  什么是跨域
  同样的,为了照顾小白同学,依然先说一下啥是跨域。说到跨域问题,如果你是 前端 同学,肯定不会陌生, 你有可能调接口调着调着,发现请求发布出去,控制台会报CORS 错误, 这时候你会找后台老大哥给你处理一下。然而现在前端工程中,一般都会有proxy代理 ,这样也能解决问题,这只是本地调试,但上线还会有问题, 除非你发布的时候你们是同一个域 下。
  好,说了这么多,大概明白跨域是如何产生了,就是说前端调用的后端接口不属于同一个 域(域名或端口不同) ,就会产生跨域问题,也就是说你的应用访问了该应用域名或端口之外的域名或端口,这里给大家总结一下,产生跨域的三个条件: 宿主环境  在浏览器端,这是浏览器的一种保护机制,这个并不是服务端的限制,可以试试postman 和自己写一个html 调试一下 请求地址 的域名或端口和当前 (页面打开的地址)访问的域名或端口不一样 发送的是 XHR (XMLHttpRequest)请求 解决思路
  解决思路大致可以分为以下几方面:  浏览器端
  从源头浏览器解决,解除跨域机制,用户自己设置浏览器,这不大现实,好,  pass  JSONP请求替代XHR
  发送 JSONP 请求替代XHR请求,并不能适用所有的请求方式,不推荐  请求代理
  之前我们提到前端本地工程开启 Proxy ,那么服务端可不可进行代理呢?答案是可以的,怎么做?可以通过nginx 进行代理,给大家简单演示一下: server {     listen 80;     server_name www.a.com;     root html;     index index.html index.htm;          location /api {         proxy_pass http://www.b.com; // 转发地址     } }
  nginx 是当今比较火的web 服务器,常用于服务代理, 等教大家部署的时候会讲一下 服务端处理
  这也是本节要讲的内容,我们先不直接的给大家展示代码,先说一下它的原理。
  一般我们下载的浏览器比如 Chrome ,它都是自行默认开启跨域限制 的,那我们如何判断我们发出去的请求是一个跨域请求 呢,打开浏览器开发者工具,在请求的请求头中就可以发现,如果不是一个跨域请求,它只有Host ,如果是一个跨域请求 它会多一个Origin ,告诉浏览器我俩请求的地方不一样 那么服务端是如何处理的呢?
  跨源资源共享(CORS) 是一种基于 HTTP头 的机制,该机制通过允许服务器标示除了它自己以外的其它origin(域,协议和端口 ),这样浏览器就可以访问加载这些资源。跨源资源共享还通过一种机制来检查服务器是否会允许要发送的真实请求,该机制通过浏览器发起一个到服务器托管的跨源资源的预检(OPTION) 请求。在预检中,浏览器发送的头中标示有HTTP方法和真实请求中会用到的头,那么具体是怎么设置头 的呢? #  设置允许访问的域 * 代表所有 Access-Control-Allow-Origin" :  "*"  # 设置允许请求者发送的请求头  "Access-Control-Allow-Headers": "*"  # 设置允许请求者发送的请求方法 多个用逗号隔开,上面也是如此 Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS
  服务端通过设置如上,就可以进行跨域访问了。好,有了基本的理论之后,我们一起看一下在 Springboot 中如何解决的: @Configuration public class GlobalCorsConfig {      /**      * 允许跨域调用的过滤器      */     @Bean     public CorsFilter corsFilter() {         CorsConfiguration config = new CorsConfiguration();         //允许白名单域名进行跨域调用         config.addAllowedOrigin("*");         //允许跨越发送cookie         config.setAllowCredentials(true);         //放行全部原始头信息         config.addAllowedHeader("*");         //允许所有请求方法跨域调用         config.addAllowedMethod("*");         UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();         source.registerCorsConfiguration("/**", config);         return new CorsFilter(source);     } }
  是不是很简单~ 它的实现机制主要是通过请求 拦截器 实现的,你慢慢会发现,随着学习的深入,你会遇到各种拦截器 技术 结束语
  本期到这里就结束了,总结一下,本节主要带大家认识了什么是 跨域 ,以及解决思路,最后教大家Sprinboot 中是如何配置跨域访问的,源码已更新,大家可以自行试一下 下期预告
  俗话说没有仪表盘的车不敢开,同样的,服务器没有日志记录,被攻击了都不知道。log对于问题的溯源是非常重要的, 下期将带大家学习一下如何在 Springboot 中配置日志以及如何开启sql 日志,我们将学习到logback 的配置。我们下期不见不散, 关注我,不迷路 ~

RetroLiteCM4游戏机价搭低搭载CM4RaspberryPi据了解,NoteBookCheck公开消息,由Dmcke5和StonedEdge所推出的RetroLiteCM4掌上游戏机已经正式发布。这款RetroLiteCM4掌上游戏机采用59岁娃玩游戏充8万,华为拒不退款?华为回应无证据表明未成年据媒体报道,河北邢台杨先生投诉华为平台一款游戏,自己9岁女儿前后为游戏充值83000元,多次申请退款均遭到拒绝。随后记者向华为方面求实,华为方面就此事作出回应,认为没有证据表明是未MIUI13打游戏掉帧吗?根据全新的发布miui13的体验如何?根据官方报道,丰富了小部件,个性化桌面细节升级。稳定加流畅加隐私基础体验,官方称时间的交点计算,原子内存液态,储存三大核心技术,全面升级系统,电视必备的电视盒子,这两款可玩性高,老人小孩都会用最近由于疫情不能外出乱跑,闲在家里,老人小孩也比较无聊,那就看电视吧,N年没打开电视机,一打开不是卡不能看就是那个要收费,看个直播都费劲。几经购买折腾亲测后,这两款比较简单容易上手未来医生要具备数据分析能力和技术素养近日,爱思唯尔正式发布的未来医生白皮书(以下简称白皮书)指出,数字技术与医疗手段的深度融合患者健康素养的全面提升多元化医疗场景将成为全球医疗发展三大趋势。白皮书通过对110个国家和车主曝特斯拉Model3高速失速隧道失去动力踩电门无反应稿源快科技4月6日,在懂车帝特斯拉Model3的车友圈儿,有车友爆料称,自己驾车走在高速上,遭遇了车辆突然失去动力的惊险一幕。据车主自述,车子是今年元旦提的,平时用车过程中,车上会最终的数据结果证实了我们团队的技术实力新冠病毒奥密克戎毒株的出现再一次证实了清华大学医学院教授张林琦团队前瞻判断的正确性选用组合拳的方式让治疗药物在与新冠病毒的对战中再下一城。疫情初期,我们经过对病毒的分析,意识到要真研究显示未来十年数字技术将与医疗深度融合来源人民网人民网北京4月6日电(记者赵竹青)在对110个国家和地区的近3000名临床医护人员进行抽样调研,并对权威临床专家进行访谈后,拥有柳叶刀和细胞等顶级医学学术期刊的信息分析公我国一项技术全球首创,高科技材料用途广泛,外媒或引起新变革在很多人眼里,金刚石是自然界最坚硬的物质。在切割玻璃的玻璃刀头部,就有一颗金刚石。科技改变生活,近日据专家介绍称,我国成功研制出了比金刚石还要坚硬的物质,它是一种代号为AMIII的明年量产自研AP芯片?还有首颗手机SoC?OPPO核心技术壁垒已成型芯片研发,俨然成为当下备受行业关注的头等问题,无论是消费者还是手机厂商本身,都对相关问题秉持着高度重视的态度。如今,芯片研发不再是苹果三星华为三家独大的,像OPPO荣耀等厂商也都投开始急了?日美汽车巨头强强联手,将推出3万美元以下电动车随着收入的增加,买车的人越来越多,众多车企也赚得盆满钵满。不过,在新能源汽车的大势之下,老牌车企们受到了不小的冲击,市场被电动车占去了不少。不过,对于这个问题,老牌车企们也没有坐以
南卡RunnerCC运动和娱乐中的平衡点运动时候你会选择佩戴哪种耳机呢,是入耳式耳塞式还是骨传导耳机?其实骨传导耳机正和名称一样,是通过骨头震动传送声波,直接传到内耳,最大程度减少发生危险的可能性,同时也不会让我们感觉有只要数十块钱就可以给你MacBook增加硬盘容量苹果MacBook笔记本向来没有高性价比这一说法,但它的品牌系统便携能力还有屏幕始终都是都是用户选择苹果笔记本的原因,也有很多设计师选择它们。这篇文章将分享如何用最低的成本来给Ma一顿饭钱就能买到Airpods?南卡Lite了解一下说起蓝牙耳机,第一个让你想到的是什么特性呢?便携音质好还是易用?而随着手机笔记本电脑市场越来越多新机取消3。5mm接口,消费者对蓝牙耳机的需求量也大幅度上升。目前市面上蓝牙耳机大部不要再用修改版系统了!手把手教你安装官方原版系统(下)上一篇文章由于篇幅原因,不得不把系统激活以及驱动安装放到本篇来详细介绍。点击进入上一篇教程系统激活目前主流的激活方式就是KMS激活,由于我们需要支持正版,所以我这里就不细讲此类激活库斯途定价16。98万起,要成为家用MPV领军者,凭什么?在中国汽车消费进入新时代的大背景下,三胎政策的实施,让MPV市场的热度进一步升高,而主流家用MPV市场已经当仁不让的成为消费新主力。北京现代正是这一市场的先行布局者。2021年9月高合HiPhiX首试CNCAP正面公开碰撞测试表现优异10月26日,作为中国豪华品牌纯电车型的代表,高合HiPhiX亮相中国汽车技术研究中心中国新车评价规程CNCAP十五周年庆典活动,现场进行了正面40重叠可变形壁障碰撞公开试验,顺利智能吉利2025加速推动吉利智能化转型10月31日,吉利汽车集团在杭州湾正式发布智能吉利2025战略,加速推动吉利智能化转型。五年内,吉利将在研发投入1500亿元,集团旗下各品牌将推出超过25款全新智能新能源产品,为消ampampquot极光ampampquot加身,比亚迪汉EV色出新境界纯电顶流汉EV,新增极光蓝车衣金鳞橙内饰配色,于9月28日惊艳上市。全新配色的设计灵感来源于自然界的极光波光暮光三种绝美之光,将自然色彩美学融入到外观内饰设计中,满足了当下年轻消费买车只认品牌?售后服务也容易中招汽车,并非一次性交易的商品。汽车品牌售后服务满意度水平高低,将直接影响用车生活的心情。近日,2021年中国汽车售后服务客户满意度(CAACS)报告出炉。报告称,乘用车4S店体系的客时代先锋!ThinkPadX1Nano首发测试泪目谢幕这是我执掌YamatoLab最后一个亲自监督的孩子,希望你们喜欢。时光回到2012年,尊为ThinkPad之父的内藤在正老先生,在ThinkPadX1CarbonGen1发洞察财经趋势,倾听天籁之音10月16日,知名财经评论员叶檀秦朔齐聚2021凤凰网财经峰会暨天籁思享荟上海站,为天籁车主打造了一场探讨经济与金融变革趋势和机遇的财经思享盛宴。越是喧嚣的年代,越要聆听内心的天籁