浏览器对跨域请求做出了同源策略的限制。同源策略指的是,如果两个 URL 的协议、域名或端口有任何一个不同,那么这两个 URL 就不属于同一个源,浏览器就会对它们的请求进行限制。具体的限制包括:
- Cookie、LocalStorage 和 IndexDB 无法读取:因为这些数据是基于域名存储的,不同域名之间的数据是不能共享的。
- AJAX 请求被禁止:XMLHttpRequest 对象只能发起同源的请求,否则会报错。
- DOM 节点无法获取:如果两个页面不属于同一个源,那么它们之间的 DOM 节点是无法获取的。
- 前端资源(如 JS、CSS、图片等)无法获取:浏览器会拦截这些资源的请求,不允许跨域获取。
为了实现跨域请求,可以使用 JSONP、CORS、postMessage 等方式。其中,CORS 是目前比较常用的跨域解决方案,它通过在服务端设置 Access-Control-Allow-Origin 头部来允许跨域请求。
2023-05-19 04:48:33 更新