10

这是我的问题 - 我想在两个网站之间进行交流,我正在寻找一个干净的解决方案。当前的解决方案使用 Javascript,但由于(可以理解的)跨站点脚本限制,存在令人讨厌的解决方法。

目前,网站 A使用名为jqModal的jQuery插件打开一个包含网站 B的模式窗口。网站 B做了一些工作并将一些结果返回到网站 A。要返回该信息,我们必须解决跨站点脚本限制 -网站 B创建一个 iframe,该 iframe 引用网站 A上的页面并包含包含要返回的信息的“片段标识符”。网站 A轮询 iframe以检测返回的信息。这是一种常见的技术,但它很hacky。

有诸如CrossSite 之类的变体,我也许可以使用从网站 B网站 A的 HTTP POST,但我试图避免页面刷新。

有没有人有其他选择?

编辑:我想避免在网站 B上保存状态。

4

4 回答 4

5

我最好的建议是在每个站点上创建一个 web 服务,另一个站点可以调用需要传递的信息。如果需要安全性,很容易向该系统添加类似 SSL 的身份验证方案(或实际的 SSL,如果您愿意),以确保只有两个服务器能够与各自的 Web 服务通信。

这将使您避免涉及一个站点在另一个站点上打开窗口的任何方案中固有的 hackiness。

于 2008-08-28T19:02:25.580 回答
3

使用比 1.2 更新的 jQuery,您可以使用JSONP

于 2008-08-28T19:01:09.920 回答
0

@jmein - 您已经描述了如何创建模态弹出窗口(这正是 jqModal 所做的),但是您错过了模态窗口的内容是从另一个域提供的。涉及的两个域属于两个独立的公司,因此不能以您描述的方式组合。

于 2008-08-28T21:27:41.253 回答
0

我相信@pat 指的是这个

“从 jQuery 1.2 开始,如果您指定 JSONP 回调,您可以加载位于另一个域中的 JSON 数据,” http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback

于 2008-08-28T22:59:52.467 回答