衣带渐宽终不悔,为伊消得人憔悴。愿,这份爱在你我之间没有 “跨域”

简介: 相信无论是前端还是后端在开发的时候,都会遇到这样的一个问题就是:跨域跨域可以说是成长路上必经的一个“坑”。但是我们不应该对它嗤之以鼻,因为它在时时保护着我们服务器的安全。

“当对一个目标有着强烈的持续的渴望时,苦苦思索体悟,就可能在事先“清晰地看见”那个崭新的结果。相反,如果事先没有清晰的意象,就不会有崭新的成果出现” ——出自《稻盛和夫给年轻人的忠告》

前言

   相信无论是前端还是后端在开发的时候,都会遇到这样的一个问题就是:跨域跨域可以说是成长路上必经的一个“坑”。但是我们不应该对它嗤之以鼻,因为它在时时保护着我们服务器的安全。



概念

到底什么是跨域?

当我们发起一个请求时,请求中URL的协议、域名、端口三者之间任意一个与当前页面URL不同时就出现跨域现象。

解释一下:

一个请求链接如下:

http://www.xxxx.com。那么它的

  • 协议是http://
  • 域名是www.xxxx.com
  • 端口是80(默认端口可以省略)

它的同源的情况如下:


为什么要有跨域?

我们在开发web应用的时候,一般都是基于浏览器。当代浏览器都遵循同源政策。

同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。

在这一政策下,受影响的有:

  • Cookie、LocalStorage、IndexDB不能获取
  • DOM 无法获得
  • Ajax 无法正常请求

所以我们平时遇到的AJAX 无法发送只是其中一个情况而已

那么问题来了,小伙伴肯定有疑问,为什么我平时用Postman 或者 其它第三方的测试接口的工具没有发生跨域的情况呢,这是因为它们没有遵循同源政策,所以不会有跨域的情况。

没有必要对跨域嗤之以鼻,如果没有它的存在,各个网站之间的Cookie或者其它敏感的信息相互传递,肯定是非常不安全的。所以我们应该正确对待他。


如何解决跨域?

下面我们重点介绍如何在 AJAX 下解决跨域情况,这是我们平时遇到最多的问题。

其实有三种办法可以解决 AJAX下的跨域情况:

  • JSONP
  • WebSocket
  • CORS

这里呢我们只介绍 CORS 这种情况, 这也是我唯一推荐给大家的一种方式。

在CORS这种情况下,前端几乎不用配置任何东西,当然这要麻烦后端的大佬了,相信大家对下面的配置肯定不陌生。无论是直接复制别人的还是从网上百度的,应该都见过:

Access-Control-Allow-Methods: ……
Access-Control-Allow-Headers: ……
Access-Control-Allow-Credentials: ……
Access-Control-Max-Age: ……

没错,就是这几个请求头。

服务器需要在浏览器预检时候,告诉浏览器,同意你的请求,这时浏览器才会发起真正的请求。

这也是很多小伙伴说,为什么我的后端代码没有执行,没有打印任何信息呢,就是因为这几个头字段没有配置正确,从而浏览器不会继续发起真正的请求。


总结

今天先给大家介绍这么多。详细的信息,大家可以参考【阮一峰】大佬的文章,介绍的非常详细。相信大家在读完之后,一定会有所收获,从此对跨域不再害怕甚至是痛恨了。

相关文章
|
12天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1262 5
|
1天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
11天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1280 87
|
12天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1823 13