<script> 标签不是同源策略的一部分的原因/背景是什么

Any*_*ny1 5 javascript ajax cross-domain script-tag same-origin-policy

最近几个月我读了很多关于浏览器和跨域请求的同源策略。

我一直在想,为什么<script>标签不是它的一部分?我发现这个问题被问了好几次,也在 stackoverflow 上,但所有的回复都没有回答为什么它不是它的一部分。

这是由于历史原因还是这种想法背后的背景是什么?

我希望有人可以帮助我解决这个问题。

Pet*_*son 1

我不知道他们决定<script>不需要封锁外国的理由,但这个决定有很多好处。

  • 并非所有脚本都必须托管在您自己的网站上,因此,
  • 脚本可以由内容交付网络托管,可以更快地交付脚本,并允许客户端使用流行脚本的缓存版本。
  • 外部脚本允许我们通过 JSONP 进行跨域 AJAX 请求。

此外,script标签历史上早于同源策略,因此脚本可以引用不一定由同一站点托管的文件是有意义的,以与 、aimgembed其他frame标签的做法保持一致。