一、跨域基础概念与原理
1.1 什么是跨域请求
跨域请求是指在Web开发中,当一个网页的资源(如脚本、字体、AJAX请求等)试图访问不同于当前页面来源(协议、域名、端口任一不同)的资源时,就会发生跨域请求。这是浏览器出于安全考虑实施的同源策略(Same-Origin Policy)限制。
生活化比喻:想象你在一家银行的分行(比如中国银行北京分行)想查询另一家分行(比如中国银行上海分行)的账户信息。如果是同一家银行的不同分行(同源不同路径),通常没问题;但如果你想查询工商银行的账户(不同源),银行会拒绝这个请求,除非你特别授权。
1.2 同源策略详解
同源策略要求"协议+域名+端口"三者完全相同才被认为是同源。下表展示了几个URL与http://www.example.com/dir/page.html
的同源检测结果:
对比URL | 结果 | 原因 |
---|---|---|
http://www.example.com/dir2/other.ht |