我已经看到了这个问题和回复,但它仍然不适合我们: Embedding Apps with API key
我们遇到了Rally API的问题。我们的目的是制作一个独立的页面(拉力赛之外),显示组合看板。
我已附上测试页。它是由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>
&#13;
我们生成的api密钥是alm-wsapi-read-only类型。加载页面时,即使提供了apikey参数,我们也会收到JSON x-site错误。
我们想知道在Rally订阅方是否有更改配置,或者文档中是否存在错误或其他简单的错误。
答案 0 :(得分:1)
我提交了一个缺陷。它可以使用rally-app-builder运行命令加载App-debug.html:
rab run
并将apiKey附加到应用程序的URL作为查询参数。它使用apiKey加载正常:
当我选择其他服务器加载嵌入式应用时,问题就出现了,例如:
a)在另一个目录中启动一个简单的http python或节点服务器
b)将App-external.html从deploy文件夹复制到运行服务器的目录
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的“网络”标签或Safari调试程序,则会显示工件(分层要求或缺陷)请求失败。有趣的是,前面的订阅,用户和架构请求成功完成。 Safari的屏幕截图:
答案 1 :(得分:0)
事实证明,底层问题与Rally服务器上的CORS配置有关,而与App SDK 2.0rc3无关。截至2014年11月24日,这个问题应该得到解决。