segmentfault.com/a/1190000016756432
1.什么是跨域
出于安全原因,JavaScript 不允许跨域调用其他页面上的对象。 那么哪些是跨域的呢? 简单理解php跨域问题,由于JavaScript同源策略的限制,a.com域名下的js很难操作b.com或cacom域名下的对象。
当合同、子域名、主域名、终端口号其中任意一项不同时,均视为不同域名。 不同的域相互请求资源,甚至称为“跨域”。 如:乞讨。
必须注意一点:跨域并不意味着不能发送请求,请求可以发送,服务器可以正常接收请求并返回结果,但是结果被浏览器拦截。 跨域的原因是受到同源策略的限制。 同源策略要求有相同的源才能正常通信,即合同、域名、终端口号都完全相同。
可以参考右图,有助于深入理解跨域。
这句话说得很清楚了两点:
第一:如果是合约和端口引起的跨域问题,“前台”是无能为力的。
第二:在跨域问题上,仅通过“URL的标头”来标识域php跨域问题,不会根据域名对应的IP地址是否相同来判断。 “URL的标头”可以理解为“协议、域名和端口必须匹配”。
2.什么是同源策略及其局限性
同源策略限制从一个源加载的文档或脚本如何与来自另一源的资源交互。 这是隔离潜在恶意文件的关键安全机制。 它的存在可以保护用户隐私信息、避免身份伪造等(阅读Cookie)。
同源策略限制包括:
允许跨域加载资源的标签有以下三个: