根据这篇维基百科文章,有三种方法可以放宽SOP。但是,本文没有讨论其中任何一个的优点或缺点。
- 设置文档域属性
- 切换到跨域资源共享
- 实现跨文档消息传递
我想知道该选择哪一个。今天是否都实施了?它们是否受支持?什么时候选择哪个?使用它们时要查找什么?等。
- 您不能直接设置
document.domain
属性(浏览器为您执行此操作)还是我错过了什么?这将是一个严重的安全问题。因此,这不是跨源脚本的真正选项。 - 如果您打算从一个 iframe 与不同的域进行通信(基本上进行跨域 AJAX 调用),这是要走的路。
- 这允许您在一个页面内的 iframe 之间进行通信。如果你只需要它,那么这是一个要走的路。另请阅读以下内容,了解更多详细信息:CORS 相对于跨域消息传递的优势
所有这些都在所有主流浏览器中实现。所有这些都受支持。选择哪一个?如果您可以访问服务器端,那么 CORS 是我的首选方式。归根结底,这取决于你想做什么。