我正在创建一个 JavaScript 小部件,它从我托管的 WCF 服务中获取大约 4-6KB 的数据,并使用画布标签(HTML5)来绘制一些图表。我希望任何人都能够通过复制粘贴我共享的一些 html 和 JavaScript 来将此小部件嵌入到他们的网站中。
现在的问题:同源策略,它不允许从小部件的主机域到我域上的 WCF 服务的任何 XHR 请求,这意味着使用小部件的任何人都无法从我的 WCF 服务获取数据(每个请求都会得到大约 4-6kb 的数据作为响应)。
我已经浏览了该站点上的先前讨论,并找到了以下可能的解决方案:
- JSONP(可以与我的 WCF 服务一起使用)
- 隐藏的 iframe(不可能,因为我无法控制这两个域)
- window.postMessage(不确定 JavaScript 库是否可以在旧浏览器 IE6 中运行)
- 跨域资源共享 (CORS)(不可能,因为我希望能够使用旧浏览器,即 IE6)
- 反向代理方法(不可能,因为我无法控制用户网站的服务器)
- easyXDM(可能是一个可能的解决方案,但需要探索如何将它与我的 WCF 服务一起使用)
首先,我想与你们确认,我对可能的不同方法所做的简要分析是正确的,我不会错过任何人正在使用的任何好的解决方案,如果我的分析是正确的,我想讨论一下优点以及这些方法的缺点。
其次,我知道 Facebook、Twitter、Google 都分享了他们的应用程序(正是我想要分享的方式)并且已经克服了这个问题以便这样做,任何人都可以指出我可以找到更多关于他们如何已经解决了这个问题。