跨域(Cross-Origin)是指在Web开发中,一个网页的脚本(如JavaScript)试图从一个源(Origin)请求另一个源的资源时所发生的情况。这里的“源”是由协议(Protocol)、域名(Domain)或IP地址(IP Address)以及端口号(Port)三个部分组成的。只要这三个部分中有任何一个不同,就构成了跨域。
跨域的定义
跨域是浏览器的一种安全机制,称为同源策略(Same-Origin Policy)。同源策略限制了一个源的文档或脚本如何与另一个源的资源进行交互。这种限制可以防止恶意网站通过脚本读取或篡改另一个网站的数据,从而保护用户的安全和隐私。
跨域的维度
跨域的判断基于以下三个维度:
- 协议(Protocol):例如HTTP和HTTPS。
- 域名或IP地址(Domain or IP Address):例如
192.168.150.200
和192.168.150.100
。 - 端口号(Port):例如80和8080。
只要上述三个维度中有任何一个不同,就构成了跨域。
跨域的例子
-
协议不同:
- 源1:
http://192.168.150.200/login.html
- 源2:
https://192.168.150.200/login
- 解释:协议不同(HTTP和HTTPS),构成跨域。
- 源1:
-
域名或IP地址不同:
- 源1:
http://192.168.150.200/login.
- 源1: