我们所说的解决跨域问题, 到底是在解决什么问题

跨域, 就是跨越两非同源的域名去做一些事情. 它本身不是问题, 是不需要解决的.

所谓同源是指,域名,协议,端口相同。
1

我们要解决的实际上是跨域带来的安全问题. 那么它会造成什么安全问题呢?

[... 稍后补全]

我在这里举一个小例子:

你家开了个植物园, 邀请客人来访问并品尝水果. 可是呢, 隔壁有家动物园, 你会允许隔壁家的猴子来你的植物园摘水果, 带过去给他家的客人吃吗?
[原创]

如何避免这些? 浏览器已经在告诉我们了: 同源策略.

同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。
1

我们平时所说的解决跨域方案, jsonp / cors 它们解决这些安全问题了吗?

没有, 他们解决掉了(绕过了) "浏览器的安全策略".

所以, 我们平时所说的解决跨域方案, 实际上是为了实现跨域的方案.

那么我们为什么要去跨域呢?

  • 前后端分离?

总结一下, 博主认为, 能不跨域就不要去跨域才是正道.

真正的解决跨域问题, 就是去避免跨域, 也就是使用反向代理, 让他们在同一个域下.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)端口号(port) 同源...
    伯纳阅读 1,303评论 0 0
  • 注:文章太长了,因此分为两段,但第一部分比较常用也更重要,可重点掌握。跨域指的是浏览器不能执行其它网站的脚本,由于...
    AizawaSayo阅读 3,871评论 0 4
  • 1. 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScri...
    cbw100阅读 6,439评论 2 86
  • 跨域在接口调用的时候经常会出现,它是基于什么原因产生的呢? 说到跨域就必须提到同源策略。什么是同源策略呢? 同源策...
    嘭嘭嘭鹏阅读 1,088评论 0 1
  • 日渐西斜,云霞渐浓,晚风渐起,鸟雀渐归,孤影渐长。 花有重开日,春有复返时,日月星辰永相随,唯流水后浪逐前浪不...
    摩羯马儿阅读 248评论 0 0