跨域:后端工程师最熟悉的陌生“人”


摘要:跨域,对后端工程师来说,可谓既熟悉又陌生。

本文分享自华为云社区《后端老司机的跨域之旅》,作者: 勇哥java实战分享。

跨域,对后端工程师来说,可谓既熟悉又陌生。

这两个月我以架构师的角色参与一款教育产品的孵化,有了一段难忘的跨域之旅。

写这篇文章,我想分享我在跨域这个知识点的经历和思考,希望对大家有所启发。

1 遇见跨域

产品有多端:机构端,局方端 ,家长端等 。每端都有独立的域名,有的是在PC上访问,有的是通过微信公众号来访问,有的是扫码后H5展现。

接入层调用的接口域名统一使用 api.training.com这个独立的域名,通过Nginx来配置请求转发。

通常,我们提到的跨域指:CORS。

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing), 它需要浏览器和服务器同时支持他,允许浏览器向跨源服务器发送XMLHttpRequest请求,从而克服 AJAX 只能同源使用的限制。

那么如何定义同源呢?我们先看下一个典型的网站的地址:

同源是指:协议、域名、端口号完全相同。

下表给出了与 URL http://www.training.com/dir/page.html 的源进行对比的示例:

当用户通过浏览器访问应用(点击关注,第一时间了解华为云新鲜技术~