前言
- 本文是对跨域概念的一个整理,从总体角度出发来说明跨域的概念,便于读者更好地去理解跨域的概念,
不涉及如果解决XXX语言下的跨域
。
跨域
定义
- 对于
脚本发起
的请求,如果请求的方法
、端口
、域名
和当前网站不同,则构成跨域
。 - 归根结底是
浏览器为了安全起见,对脚本请求行为的控制
。 - 根据会不会发起
预检操作
(其实是一个option请求),将跨域
分为简单请求
和非简单请求
。
简单请求
- 具体定义请看参考链接,简单请求不会发起option请求(预检操作),但是如果响应头中没有确定允许客户端的行为的话,浏览器就会拒绝返回请求,并在控制台报错。
非简单请求
- 除了简单请求,就是非简单请求。会先向目的域发一个option请求,问服务器,你允不允许我做这些操作,服务器通过响应头告诉客户端(浏览器),是否允许这种操作,如果允许浏览器才会继续发送请求除去,否则目标请求都发送不出去。