在我们的网站上www.foo.com
,我们想下载并使用http://feeds.foo.com/feed.xml
Javascript。我们显然会使用Access-Control,但对于不支持它的浏览器,我们正在考虑以下作为后备:
在 上www.foo.com
,我们设置document.domain
,提供回调函数并将提要加载到(隐藏)中iframe
:
document.domain = 'foo.com';
function receive_data(data) {
// process data
};
var proxy = document.createElement('iframe');
proxy.src = 'http://feeds.foo.com/feed.xml';
document.body.appendChild(proxy);
在 上feeds.foo.com
,添加一个 XSLfeed.xml
并将其用于将提要转换为 html 文档,该文档还设置document.domain
和调用其父级中的回调函数,提要数据为 json:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="ROOT">
<html><body>
<script type="text/javascript">
document.domain = 'foo.com';
parent.receive_data([<xsl:apply-templates/>]);
</script>
</body></html>
</xsl:template>
<!-- templates that transform data into json objects go here -->
</xsl:stylesheet>
有没有更好的方法从 feeds.foo.com 加载 XML,这个 iframe-proxy/xslt/jsonp 技巧的后果是什么?(..在什么情况下会失败?)
评论