【问题标题】:Relaxing same-origin policy放宽同源政策
【发布时间】:2012-11-14 20:36:47
【问题描述】:
根据this Wikipedia article,放宽SOP的方法有3种。但是,本文没有讨论其中任何一个的优点或缺点。
- 设置 document.domain 属性
- 切换到跨域资源共享
- 实现跨文档消息传递
不知道该选哪一个。今天全部实施了吗?他们受支持吗?什么时候选哪个?使用它们时要注意什么?等等。
【问题讨论】:
标签:
javascript
cross-domain
cors
same-origin-policy
【解决方案1】:
- 您不能直接设置
document.domain 属性(浏览器会为您设置)还是我遗漏了什么?这将是一个严重的安全问题。因此,这并不是跨域脚本的真正选择。
- 如果您打算通过一个 iframe 与不同域进行通信(基本上是进行跨域 AJAX 调用),那么您应该走的路。
- 这允许您在一页内的 iframe 之间进行通信。如果您只需要它,那么这是一种方法。另请阅读此内容以获取更多详细信息:Benefit of CORS over cross-domain messaging
所有这些都在所有主要浏览器中实现。都支持。选哪一个?如果您可以访问服务器端,那么 CORS 是我的首选方式。归根结底,这完全取决于您想做什么。