当前位置: 首页 > news >正文

dw做网站的导航栏阿里云服务器做网站

dw做网站的导航栏,阿里云服务器做网站,池州网站seo,网站信息内容建设责任制落实情况引言#xff1a;在现代的Web开发中#xff0c;跨域请求#xff08;Cross-Origin Resource Sharing#xff0c;CORS#xff09;是一个常见的挑战。随着前后端分离架构的流行#xff0c;前端应用通常运行在一个与后端 API 不同的域名或端口上#xff0c;这就导致了浏览器的…引言在现代的Web开发中跨域请求Cross-Origin Resource SharingCORS是一个常见的挑战。随着前后端分离架构的流行前端应用通常运行在一个与后端 API 不同的域名或端口上这就导致了浏览器的同源策略Same-Origin Policy的限制从而出现了跨域请求问题。 Spring Boot 作为一种流行的 Java 后端框架提供了多种处理跨域请求的方法使得开发人员能够灵活地配置和管理跨域资源共享。本文将深入探讨几种常见的解决方案帮助开发人员理解如何在 Spring Boot 应用中有效地处理跨域请求问题。 题目 SpringBoot 如何处理跨域请求你说的出几种方法 推荐解析 跨域请求概述 1什么是跨域请求 跨域请求Cross-Origin Request指的是在浏览器环境下前端代码发起的请求与当前页面的域名或端口、协议不同。浏览器的同源策略Same-Origin Policy限制了从一个源域名、协议、端口组成的组合加载的文档或脚本如何与来自另一个源的资源进行交互。 具体来说如果一个页面加载自 http://domain1.com则它的同源策略默认限制了对 http://domain2.com 发起的请求。 2为什么会出现跨域问题 跨域问题的出现主要是为了保护用户数据和用户隐私安全。如果没有同源策略的限制恶意网站可以利用当前用户的身份在其他网站上进行操作如发送请求、读取数据这可能导致信息泄露或潜在的安全威胁。 3可能会导致的安全风险 信息泄露允许恶意网站读取其他网站的敏感数据。 CSRF跨站请求伪造攻击如果没有适当的防护措施允许攻击者伪造用户的请求并在用户不知情的情况下执行操作。 恶意脚本注入通过跨域请求注入恶意脚本影响其他域上的安全性。 跨域解决方案 1使用CrossOrigin注解 Spring 框架提供了CrossOrigin注解可以直接在 Controller 类或方法上使用以声明允许来自特定源的请求。例如 RestController RequestMapping(/api) public class MyController {CrossOrigin(origins http://allowed-origin.com)GetMapping(/data)public ResponseEntityString getData() {// 处理逻辑} }优点简单直接适用于简单的跨域场景。 缺点无法进行更细粒度的配置如请求方法、请求头等。 2 使用WebMvcConfigurer配置类 通过自定义WebMvcConfigurer配置类可以更灵活地配置跨域请求。例如 Configuration public class WebConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping(/api/**).allowedOrigins(http://allowed-origin.com).allowedMethods(GET, POST).allowedHeaders(header1, header2).exposedHeaders(header3).allowCredentials(true).maxAge(3600);} }优点可以精确控制允许的源、方法、头部等。 缺点需要编写额外的配置类相对比较复杂。 3使用过滤器Filter 通过自定义过滤器来处理跨域请求这种方法可以在请求到达 Controller 之前进行处理。例如 Component public class CorsFilter implements Filter {Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)throws IOException, ServletException {HttpServletResponse response (HttpServletResponse) res;HttpServletRequest request (HttpServletRequest) req;response.setHeader(Access-Control-Allow-Origin, http://allowed-origin.com);response.setHeader(Access-Control-Allow-Methods, GET,POST);response.setHeader(Access-Control-Allow-Headers, header1,header2);response.setHeader(Access-Control-Expose-Headers, header3);response.setHeader(Access-Control-Allow-Credentials, true);response.setHeader(Access-Control-Max-Age, 3600);chain.doFilter(req, res);}}优点可以完全自定义跨域请求处理逻辑。 缺点需要更多的Java编程经验并且可能需要处理更复杂的跨域场景。 其他补充 鱼聪明 AI 的回答 鱼聪明 AI 地址https://www.yucongming.com/ 1. 预检请求Preflight Requests 跨域请求中某些复杂请求如带有自定义头部的请求、使用某些特殊方法如PUT、DELETE等的请求会触发浏览器先发送一个预检请求OPTIONS请求到服务器以确定是否允许实际的请求。预检请求包含以下头部信息 Origin表明发起请求的源。Access-Control-Request-Method实际请求将使用的HTTP方法。Access-Control-Request-Headers实际请求将使用的自定义头部。 服务器需要正确响应预检请求以确保浏览器安全地执行实际请求。 处理预检请求的方法 使用CrossOrigin注解处理 CrossOrigin(origins http://allowed-origin.com, methods {RequestMethod.GET, RequestMethod.POST}, allowedHeaders {header1, header2}) RequestMapping(value /api/data, method RequestMethod.OPTIONS) public ResponseEntityVoid preflight() {return ResponseEntity.ok().build(); }在Controller中定义一个处理OPTIONS请求的方法并使用CrossOrigin注解指定允许的源、方法和头部。 通过WebMvcConfigurer配置类处理 Configuration public class WebConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping(/api/**).allowedOrigins(http://allowed-origin.com).allowedMethods(GET, POST).allowedHeaders(header1, header2).exposedHeaders(header3).allowCredentials(true).maxAge(3600);}Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping(/api/**).allowedOrigins(http://allowed-origin.com).allowedMethods(GET, POST).allowedHeaders(header1, header2).exposedHeaders(header3).allowCredentials(true).maxAge(3600);} }在WebMvcConfigurer配置类中通过重写addCorsMappings方法来定义预检请求的处理方式。 2. 其他注意事项 Credentials凭证的处理 如果请求需要使用凭证如使用Cookie、HTTP认证信息等需要确保在跨域请求中设置Access-Control-Allow-Credentials为true并在客户端请求中设置withCredentials为true。 暴露自定义头部 如果需要在响应中暴露某些自定义头部供客户端访问可以通过Access-Control-Expose-Headers头部指定。 缓存控制 可以通过Access-Control-Max-Age头部指定预检请求的缓存时间减少重复发送预检请求的次数提升性能。 总结 避免跨域请求问题不仅仅是简单地允许跨域请求还需要正确处理预检请求及相关细节。通过使用CrossOrigin注解、自定义WebMvcConfigurer配置类或过滤器来处理跨域请求可以有效地保证跨域请求的安全性和可靠性。同时要特别注意凭证的处理及其他相关头部信息的配置确保跨域请求能够在安全、可控的环境下完成。 欢迎交流 本文主要介绍 SpringBoot 处理跨域请求的方式另外可以用 SpringSecurity 和 SpringCloudGateWay 等框架进行全局跨域处理在文末还剩下三个问题欢迎小伙伴在评论区进行留言近期面试鸭小程序已全面上线想要刷题的小伙伴可以积极参与 1如何区分简单请求和复杂请求 2在实际项目中如何选择合适的跨域请求解决方案 3如何处理凭证Credentials在跨域请求中的应用
http://www.dnsts.com.cn/news/214951.html

相关文章:

  • 网站开发开发需求文档模板重庆市建设工程信息网安全员c证电子版下载
  • 游戏网站开发需求分析软件开发合同样本
  • 西宁设计网站建设如何建设淘宝网站
  • 上海网站建设乐云seo程序开发用什么软件
  • 怎么找做网站的人企业网站用什么开发好-商业推广
  • 两学一做 山西答题网站网络传媒公司
  • wordpress建站项目网站建设模板源码
  • 哪建设网站品牌设计包括
  • 网站服务器维护农业网站建设模板
  • 网站赚取广告费海南新闻在线中心
  • 做期货在哪个网站看消息谷歌浏览器官网手机版
  • 网站模板下载后怎么使用如何利用网站策划做好网站建设
  • 网站开发语言有什么要求在哪里创建网站
  • 免费公司建站网站开发搭建合同
  • 自己做的网站服务器开了进不去网络营销的概念和内涵
  • 科技 响应式网站模板自己做的网站点首页出错
  • 网站开发规范有哪些视频网站怎么做排名
  • 广州顺德网站设计磁力猫搜索引擎入口官网
  • 在线网站seo优化完成一个个人主页网站的制作
  • 汕头做网站费用建设网站用户名是什么意思
  • 网站做适配seo网络推广
  • 2023还能上的网站营销推广活动方案
  • 具有营销型网站的公司有哪些wordpress数据库连接不上
  • 漳州做网站制作综合电商平台
  • 门户网站怎么建设需要多长时间zol软件下载
  • 营销网站分为哪几种微同步网站
  • 网页制作与网站建设 论文一个简单的网站搭建教程
  • 好看响应式网站模板下载绿色大气5.7织梦网站模版
  • 用搬瓦工做网站页面设计是什么意思
  • 免费网站制作视频教程英文网站建设解决方案