【发布时间】:2011-01-05 05:44:16
【问题描述】:
我的环境实际上不允许服务器端脚本(很难在服务器上“安装”脚本)。我尝试使用 iframe 来违反 javascript 的同源策略;然而,这并没有奏效。还有其他我不知道的解决方法吗?
谢谢!
【问题讨论】:
-
什么浏览器?你到底是怎么尝试的?邮政编码?
-
JSON-P 是最简单的解决方案,也是唯一不需要浏览器插件(如 Flash)的解决方案(AFAIK)。这确实需要运行不同源站点的任何人的合作。
-
这个问题可能是这里被问得最多的问题了!搜索会带来 许多 个答案。您需要控制两个域上的脚本和页面(如果您无法编辑两个域上的内容,您将无法执行此操作),并且需要使用诸如 easyxdm.net 之类的框架或搜索用于“跨域消息通信”。 HTML5 规范确实有一个
postMessage方法,但是如果你仅仅依赖它,它在大多数浏览器中都不起作用,所以你需要回退到一个旧的“hack”方法——为什么不让一个框架来替你处理这个? -
Sooo 作为更新。我发现:来自ajaxian.com/archives/using-yql-as-a-proxy-for-cross-domain-ajax 的 YQL 它会抓取您指定的任何 url 并将其包装在 JSON 中并返回。然后,您可以使用 jquery 的 getJSON 函数来获取该 url。它似乎正在工作:)!
-
只需使用easyXDM,它是一个只需很少编码即可实现跨域消息传递的库,并且不需要任何服务器组件。
标签: javascript cross-domain same-origin-policy