一、跨域概念解析
跨域是一个在前端开发中经常遇到的问题。它指的是浏览器不能执行其他网站的脚本,这是由于浏览器的同源策略造成的。所谓同源,即协议、域名、端口都要相同。只要这三个要素中有任何一个不同,都被当作是不同的域,就会产生跨域问题。
同源策略是浏览器最核心也最基本的安全功能。如果缺少了同源策略,浏览器很容易受到 XSS、CSFR 等攻击。同源策略具体限制内容包括:
- Cookie、LocalStorage 和 IndexDB 无法读取:不同源的文档之间不能读取对方的存储内容。
- DOM 无法获得:不能获取非同源网页的 DOM。
- AJAX 请求不能发送:不能向非同源之地发送 ajax 请求。
例如,假设有两个网站,A 网站部署在 http://localhost:81,B 网站部署在 http://localhost:82。当 A 网站的页面想去访问 B 网站的信息时,就会出现跨域问题。因为它们的端口不同,不满足同源策略的要求。
总之,同源策略的存在是为了保护用户的安全和隐私,但在某些情况下,也给开发带来了一些挑战。开发人员需要了解跨域问题的本质,并掌握一些解决跨域问题的方法,以确保应用程序的正常运行。
二、跨域请求方式大揭秘
(一)JSONP 跨域
JSONP 是利用浏览器对