北京网页制作方案seo网站做推广

张小明 2026/1/11 18:16:18
北京网页制作方案,seo网站做推广,湛江专业做网站,无锡网络公司文章目录引言同源策略跨域问题如何产生#xff1f;解决方案一#xff1a;CORS#xff08;跨源资源共享#xff09;1. 简单请求#xff08;Simple Requests#xff09;2. 预检请求#xff08;Preflighted Requests#xff09;代码示例Java (Spring Boot 示例)Go (Gin 框…文章目录引言同源策略跨域问题如何产生解决方案一CORS跨源资源共享1. 简单请求Simple Requests2. 预检请求Preflighted Requests代码示例Java (Spring Boot 示例)Go (Gin 框架示例)解决方案二反向代理集中管理与解耦安全性与架构优势架构示意图总结引言在平时的后台开发中我们会经常遇到跨域问题那么跨域问题到底是什么怎么去解决跨域问题呢今天我们就一起探讨一下。同源策略跨域问题本质上是由于浏览器的同源策略Same-Origin Policy引起的。同源策略是浏览器的一个安全限制。它规定一个源Origin的文档或脚本只能与同源的资源进行交互。“源”由三个部分组成协议Protocol、主机Host/Domain和端口号Port。如果请求的 URL 与当前页面的 URL 相比任一部分不同就被认为是跨源。当前页面 URL目标 URL是否同源跨源原因http://a.com:8080/index.htmlhttp://a.com:8080/data.json是(全部相同)http://a.com:8080/**https**://a.com:8080/否协议不同 (httpvshttps)http://a.com:8080/http://**b.com**:8080/否主机不同 (a.comvsb.com)http://a.com:8080/http://a.com:**9090**/**否端口不同 (8080vs9090)同源策略的目的是保护用户安全和隐私防止恶意网站通过浏览器脚本访问其他网站的敏感数据。跨域问题如何产生当浏览器中的前端代码如使用XMLHttpRequest或FetchAPI尝试向一个不同源的服务器发起 HTTP 请求时浏览器会拦截服务器返回的数据导致请求失败但在网络层面上请求实际上已经发送到服务器并收到了响应。这就是我们在开发中常说的跨域报错通常你会看到类似No Access-Control-Allow-Origin header is present on the requested resource的错误信息。解决方案一CORS跨源资源共享在本地开发测试阶段可以通过配置cors来解决跨域问题。跨源资源共享Cross-Origin Resource Sharing,CORS是一种允许浏览器放宽同源策略限制的机制。它通过在服务器端设置特定的HTTP 响应头来告知浏览器该服务器允许哪些源访问其资源。CORS 主要分为两种请求模式1. 简单请求Simple Requests如果请求同时满足以下所有条件则被认为是简单请求方法只能是GET、POST、HEAD之一。请求头只能包含少数几个安全的请求头如Accept、Accept-Language、Content-Language、Content-Type等且Content-Type只能是以下三种之一application/x-www-form-urlencodedmultipart/form-datatext/plain工作流程浏览器直接发送请求并在请求头中带上Origin字段表明自己的源。服务器收到请求后如果允许跨源访问则在响应头中加入Access-Control-Allow-Origin字段指定允许的源例如Access-Control-Allow-Origin: http://client.com或Access-Control-Allow-Origin: *。浏览器检查响应头如果发现Access-Control-Allow-Origin允许当前源则将数据交给前端代码否则抛出跨域错误。2. 预检请求Preflighted Requests对于非简单请求例如使用了PUT、DELETE方法或者设置了自定义请求头浏览器会先发送一个使用OPTIONS方法的预检请求以确定服务器是否安全。工作流程浏览器发送OPTIONS预检请求请求头包含Origin当前源。Access-Control-Request-Method实际请求将使用的方法如POST。Access-Control-Request-Headers实际请求将携带的自定义请求头如X-Custom-Header。服务器处理预检请求服务器检查这些请求头如果允许则在预检请求的响应头中返回Access-Control-Allow-Origin允许的源。Access-Control-Allow-Methods允许的方法。Access-Control-Allow-Headers允许的自定义请求头。Access-Control-Max-Age预检结果的缓存时间秒。浏览器检查预检结果如果预检通过浏览器才会发送实际的 HTTP 请求GET/POST/PUT/DELETE 等。服务器处理实际请求并返回数据响应头中通常仍会包含Access-Control-Allow-Origin。代码示例Java (Spring Boot 示例)在 Spring Boot 中你可以通过配置WebMvcConfigurer或在 Controller 上使用CrossOrigin注解来解决// 方法一全局配置 (推荐)ConfigurationpublicclassCorsConfigimplementsWebMvcConfigurer{OverridepublicvoidaddCorsMappings(CorsRegistryregistry){registry.addMapping(/**)// 匹配所有路径.allowedOrigins(http://your-frontend-domain.com)// 允许的源可以设为 * 允许所有不推荐用于生产.allowedMethods(GET,POST,PUT,DELETE,OPTIONS)// 允许的方法.allowedHeaders(*)// 允许所有请求头.allowCredentials(true)// 是否允许携带 Cookie.maxAge(3600);// 预检请求的缓存时间}}Go (Gin 框架示例)如果你使用 Gin 框架可以借助第三方 CORS 中间件例如github.com/gin-contrib/cors// Go 示例 (使用 Gin 框架和 gin-contrib/cors 中间件)packagemainimport(timegithub.com/gin-contrib/corsgithub.com/gin-gonic/gin)funcmain(){r:gin.Default()// 配置 CORS 中间件r.Use(cors.New(cors.Config{AllowOrigins:[]string{http://your-frontend-domain.com},// 允许的源AllowMethods:[]string{GET,POST,PUT,DELETE,OPTIONS},AllowHeaders:[]string{Origin,Content-Type,Authorization},// 允许的请求头ExposeHeaders:[]string{Content-Length},// 允许前端访问的响应头AllowCredentials:true,// 允许携带 CookieMaxAge:12*time.Hour,}))r.GET(/ping,func(c*gin.Context){c.JSON(200,gin.H{message:pong,})})r.Run()}解决方案二反向代理这是生产环境中最常用且推荐的方案。前端请求同源的代理服务器由代理服务器转发请求给目标服务器。因为请求发生在服务器之间不受浏览器同源策略限制。当浏览器向代理服务器例如http://api.frontend.com发送请求时由于前端页面和代理服务器是同源的浏览器不会触发同源策略限制。代理服务器在收到请求后再将其转发到后端服务例如http://backend-service:8080。服务器之间的通信不存在跨域限制集中管理与解耦将跨域配置、SSL/TLS 证书、负载均衡、限流、缓存等所有非业务性的公共配置全部集中在反向代理层处理。后端服务解耦后端服务Java/Go可以专注于业务逻辑无需关心这些基础设施配置。配置统一只需要在 Nginx 或 Gateway 上配置一次适用于所有后端服务安全性与架构优势隐藏真实服务地址客户端只能看到代理服务器的地址后端服务的真实 IP 和端口被隐藏提高了安全性。更细致的访问控制代理层可以更容易地实现基于路径的访问控制和限流架构示意图总结解决跨域问题在开发测试环境中为了简单快捷我们可以使用cors。在生产部署环境中强烈建议使用反向代理。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设什么牌子好网站建设用到什么

fre:ac音频转换工具使用全攻略:轻松掌握专业级音频处理 【免费下载链接】freac The fre:ac audio converter project 项目地址: https://gitcode.com/gh_mirrors/fr/freac 在数字音乐普及的今天,音频格式转换成为音乐爱好者经常面对的任务。fre:a…

张小明 2026/1/4 6:19:23 网站建设

行业网站建设申请报告wordpress添加flash游戏

DNS管理与TCP/IP故障排除全解析 1. DNS管理 1.1 DNS安全 若区域与Active Directory集成,可使用与区域关联的DACL进一步控制对文件的访问。从Windows Server 2008 R2开始,在保护区域数据库文件方面,安全性更进一步,引入了域名系统安全扩展(DNSSEC)。DNSSEC允许对DNS区域…

张小明 2026/1/3 15:43:30 网站建设

注册网站刀具与钢材经营范围怎么把自己做的网站发布

课题介绍本课题聚焦宠物店日常运营中客户管理零散、宠物服务流程混乱、商品库存管控低效、数据统计滞后等痛点,设计并实现基于Spring Boot框架的宠物店管理系统。系统以Spring Boot为后端核心开发框架,整合MyBatis-Plus实现客户信息、宠物档案、服务记录…

张小明 2026/1/4 5:56:25 网站建设

网站建立公司四川公司做网站要花多少钱

导读:2025年下半年,招聘市场开始回暖。6月份开始,新经济行业新发岗位量开始超越去年同期水平。具体到A!领域招聘情况,自2025年2月起,A(岗位数量持续快速增长。至2025年9月,新发A1岗位数量(招聘指数403)达到…

张小明 2026/1/4 5:03:47 网站建设

默认网站 域名 网站绑定wordpress主题重新激活

文章目录 具体实现截图主要技术与实现手段关于我本系统开发思路java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 具体实现截图 同行可拿货,招校园代理 vue3和vue3和nodejs开发的基于Java的网上宠物店管理系统…

张小明 2026/1/7 22:57:46 网站建设

爱站网ip反域名查询海南网站建设案例

作者:Jasper来源:IPO魔女2025年12月19日,固德电材系统(苏州)股份有限公司(以下简称“固德电材”)将迎来深交所创业板上市委员会审核,公司保荐机构为东吴证券,拟募集资金1…

张小明 2026/1/5 6:34:54 网站建设