如何突破HTML跨域限制,有效提升同源策略?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1020个文字,预计阅读时间需要5分钟。
HTML 标签本质上是无关的、也不执行同源策略——浏览器执行,仅在特定场景下强制执行 enforce。
你写 <img src="https://cdn.example.com/photo.jpg"> 能加载成功,不是因为“HTML 支持跨域”,而是因为 <img> 标签的资源加载行为被浏览器明确豁免了同源检查。同理,<script>、<link rel="stylesheet"> 也属于这类“可跨域加载但不可读取响应”的标签。
真正受同源策略限制的,是 JavaScript 对响应内容的读取能力(比如 fetch() 返回的 response.text())、对 DOM 的访问(如 iframe.contentDocument),以及对 Cookie / localStorage 的操作。
为什么 fetch 会报 CORS 错误,而 img 不会
核心区别在于:浏览器是否允许 JS 拿到响应体。
本文共计1020个文字,预计阅读时间需要5分钟。
HTML 标签本质上是无关的、也不执行同源策略——浏览器执行,仅在特定场景下强制执行 enforce。
你写 <img src="https://cdn.example.com/photo.jpg"> 能加载成功,不是因为“HTML 支持跨域”,而是因为 <img> 标签的资源加载行为被浏览器明确豁免了同源检查。同理,<script>、<link rel="stylesheet"> 也属于这类“可跨域加载但不可读取响应”的标签。
真正受同源策略限制的,是 JavaScript 对响应内容的读取能力(比如 fetch() 返回的 response.text())、对 DOM 的访问(如 iframe.contentDocument),以及对 Cookie / localStorage 的操作。
为什么 fetch 会报 CORS 错误,而 img 不会
核心区别在于:浏览器是否允许 JS 拿到响应体。

