我已经看到了这个问题和回答,但它仍然不适用于我们:Embedding Apps with API key
我们在Rally API上遇到了问题。我们的目的是创建一个独立的页面(在Rally之外),以显示项目组合看板。
我已经附上了测试页面。它是用rally-app-builder创建的。我们创建了一个API密钥。当我们试图加载页面,传递API密钥时,我们得到一个关于跨站点违规的json异常。文档上说,如果我们不传递密钥,就会看到这个错误。但是,即使我们传递了它,错误仍然存在。
我们已经通过apache服务器尝试过了,所以作为独立文件的问题不是我们的问题。还有没有别的主意?
html页面如下所示。
<!DOCTYPE html>
<html>
<head>
<title>helloworld</title>
<script type="text/javascript" src="https://rally1.rallydev.com/apps/2.0rc3/sdk.js"></script>
<script type="text/javascript">
Rally.onReady(function () {
Ext.define("CustomApp",{extend:"Rally.app.App",componentCls:"app",items:{html:'<a href="https://help.rallydev.com/apps/2.0rc3/doc/">App SDK 2.0rc3 Docs</a>'},launch:function(){this.add({xtype:"rallycardboard",types:["Portfolio Item/Feature"],attribute:"State",storeConfig:{context:{project:"/project/14292239482",projectScopeUp:!1,projectScopeDown:!0}},context:this.getContext(),readOnly:!0})}});
Rally.launchApp('CustomApp', {
name:"helloworld",
parentRepos:""
});
});
</script>
<style type="text/css">
</style>
</head>
<body>
</body>
</html>
我们生成的api密钥是alm-wsapi-read-only类型。当页面加载时,即使提供了apikey参数,我们也会得到JSON x-site错误。
我们想知道在Rally订阅端是否有需要更改的配置,或者文档中是否有错误或其他简单的东西。
发布于 2014-11-04 03:20:43
我提交了一个缺陷。直到我使用rally-app-builder run命令加载App-debug.html时,它才能正常工作:
rab run并将apiKey作为查询参数附加到应用程序的URL。使用apiKey可以很好地加载:

当我选择不同的服务器来加载嵌入式应用程序时,问题就开始了,例如:
A)在另一个目录中启动一个简单的http、python或node服务器
B)从deploy文件夹中将App-external.html al.html复制到运行服务器的目录中
C)在该目录下新建一个文件App-embedded.html:
<html>
<header>
<title>Embedded app test: revs</title>
</header>
<body>
<iframe src="http://localhost:9000/App-external.html?apiKey=_Ib4u6d7"></iframe>
</body>
</html>D)加载App-embedded.html
这些步骤会导致跨域错误。
如果你检查Chrome的Network标签页,或者Safari调试器,它会显示工件(层次要求或缺陷)请求失败。有趣的是,前面的订阅、用户和架构请求都成功完成。来自Safari的截图:

发布于 2014-11-26 03:19:10
事实证明,潜在的问题与Rally服务器上的CORS配置有关,而不是App SDK 2.0rc3的任何特定问题。自14年11月24日起,此问题应得到解决。
https://stackoverflow.com/questions/26637799
复制相似问题