Javascript 拉力赛;“构建您的第一个应用程序”;应用程序未运行

Javascript 拉力赛;“构建您的第一个应用程序”;应用程序未运行,javascript,rally,Javascript,Rally,我正在学习教程,遇到了一些问题 首先,Rally在默认情况下禁用了JSONP,并警告不要再打开它。没有它,您无法在本地运行正在开发的应用程序。这是一个巨大的皮塔。我们继续前进。我通过在rallydev.com环境中创建一个自定义HTML应用程序来运行它,每次我更改代码,并以这种方式查看它 我只到了“向应用程序添加硬纸板”部分,已经有JS错误了。从开发人员控制台: sdk.js:formatted:69475 Error: success callback for Deferred transfo

我正在学习教程,遇到了一些问题

首先,Rally在默认情况下禁用了JSONP,并警告不要再打开它。没有它,您无法在本地运行正在开发的应用程序。这是一个巨大的皮塔。我们继续前进。我通过在rallydev.com环境中创建一个自定义HTML应用程序来运行它,每次我更改代码,并以这种方式查看它

我只到了“向应用程序添加硬纸板”部分,已经有JS错误了。从开发人员控制台:

sdk.js:formatted:69475 Error: success callback for Deferred transformed result of Deferred transformed result of Deferred threw: TypeError: Cannot read property 'project' of undefined
    at Ext.define.getFullyQualifiedName (sdk.js:formatted:78147)
    at Ext.define.build (sdk.js:formatted:78170)
    at Ext.define.buildCompositeArtifact (sdk.js:formatted:78209)
    at Ext.define.getModel (sdk.js:formatted:96694)
    at Ext.define._buildColumnsFromModel (sdk.js:formatted:96901)
    at Ext.define._parseColumns (sdk.js:formatted:96898)
    at sdk.js:formatted:67474
    at Ext.define.notify (sdk.js:formatted:67523)
    at Ext.define.register (sdk.js:formatted:67509)
    at Ext.define.then (sdk.js:formatted:67408)Ext.override.log @ sdk.js:formatted:69475Ext.define.error @ sdk.js:formatted:66221(anonymous function) @ sdk.js:formatted:67479Ext.define.notify @ sdk.js:formatted:67523Ext.define.register @ sdk.js:formatted:67509Ext.define.then @ sdk.js:formatted:67408Ext.define.then @ sdk.js:formatted:67347Ext.define._parseColumnsAndRows @ sdk.js:formatted:96825Ext.define.onModelsRetrieved @ sdk.js:formatted:96728Rally.data.ModelFactory.getModels.success @ sdk.js:formatted:96736(anonymous function) @ sdk.js:formatted:1108
在控制台中格式化的sdk.js中,这段代码就是它发生的地方,第78145到78149行<代码>上下文未定义:

    getFullyQualifiedName: function() {
        var context = this.getContext();
        return context.project ? oidStr = "project." + Rally.util.Ref.getOidFromRef(context.project) : oidStr = "workspace." + Rally.util.Ref.getOidFromRef(context.workspace),
        "Rally.domain." + this.getWsapiVersion() + "." + oidStr + "." + this.getTypePath().replace(/\//g, "")
    },
ETA:我试图复制教程中的完整代码,但也失败了(同样的错误)。所以如果Rally的任何人看到这个,这个就坏了。JSONP混乱的解决方案也将是非常棒的

埃塔:我听从了@KyleMorse的建议,去了2.1指令。我将最后的代码复制到我的App.js中。我现在可以在本地运行,但JS错误:

XMLHttpRequest cannot load https://rally1.rallydev.com/slm/webservice/v2.0/Project/54629369420?fetch=O…rationEstimateUnitName%2CReleaseEstimateUnitName%2CTaskUnitName%2CChildren. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:1337' is therefore not allowed access.
sdk.js:65 Error: success callback for Deferred transformed result of Deferred transformed result of Deferred threw: TypeError: Cannot read property 'project' of undefined
    at Ext.define.getFullyQualifiedName (sdk.js:72)
    at Ext.define.build (sdk.js:72)
    at Ext.define.buildCompositeArtifact (sdk.js:72)
    at Ext.define.getModel (sdk.js:89)
    at Ext.define._buildColumnsFromModel (sdk.js:89)
    at Ext.define._parseColumns (sdk.js:89)
    at sdk.js:62
    at Ext.define.notify (sdk.js:63)
    at Ext.define.register (sdk.js:62)
    at Ext.define.then (sdk.js:62)Ext.override.log @ sdk.js:65Ext.define.error @ sdk.js:61(anonymous function) @ sdk.js:62Ext.define.notify @ sdk.js:63Ext.define.register @ sdk.js:62Ext.define.then @ sdk.js:62Ext.define.then @ sdk.js:62Ext.define._parseColumnsAndRows @ sdk.js:89Ext.define.onModelsRetrieved @ sdk.js:89Rally.data.ModelFactory.getModels.success @ sdk.js:89(anonymous function) @ sdk.js:1
我在Rally中添加了一个新的应用程序。它会加载,但列不会显示,我看到JS错误:

XMLHttpRequest cannot load https://rally1.rallydev.com/slm/webservice/v2.0/Project/54629369420?fetch=O…rationEstimateUnitName%2CReleaseEstimateUnitName%2CTaskUnitName%2CChildren. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:1337' is therefore not allowed access.
sdk.js:65 Error: success callback for Deferred transformed result of Deferred transformed result of Deferred threw: TypeError: Cannot read property 'project' of undefined
    at Ext.define.getFullyQualifiedName (sdk.js:72)
    at Ext.define.build (sdk.js:72)
    at Ext.define.buildCompositeArtifact (sdk.js:72)
    at Ext.define.getModel (sdk.js:89)
    at Ext.define._buildColumnsFromModel (sdk.js:89)
    at Ext.define._parseColumns (sdk.js:89)
    at sdk.js:62
    at Ext.define.notify (sdk.js:63)
    at Ext.define.register (sdk.js:62)
    at Ext.define.then (sdk.js:62)Ext.override.log @ sdk.js:65Ext.define.error @ sdk.js:61(anonymous function) @ sdk.js:62Ext.define.notify @ sdk.js:63Ext.define.register @ sdk.js:62Ext.define.then @ sdk.js:62Ext.define.then @ sdk.js:62Ext.define._parseColumnsAndRows @ sdk.js:89Ext.define.onModelsRetrieved @ sdk.js:89Rally.data.ModelFactory.getModels.success @ sdk.js:89(anonymous function) @ sdk.js:1

由于您刚刚开始,我建议您使用SDK的最新版本及其相应指南:

您引用的JSONP问题是自2.0文档发布以来的新问题。2.1文件提到了这一限制。您肯定希望使用Rally App Builder运行您的应用程序来解决此问题

你绝对不需要不断地将应用程序复制/粘贴到自定义HTML面板中进行测试-这非常痛苦,这也是我们最初创建Rally app Builder的主要原因之一


我无法复制您的另一个问题。如果您仍有问题,是否可以使用新指南再试一次并报告?

可以-谢谢。我希望你能看到这个问题!见以上编辑;我现在遵循2.1指南并使用2.1 SDK。我找到了解决JSONP问题的方法,可以在本地加载,但仍然会出现错误,而不是成功运行。谢谢。请查看这个非常相关的答案:
XMLHTTPRequest
JS错误是一个CORS/HTTP访问控制问题,因为我正在尝试跨域访问(我想是本地主机到rally1.rallydev.com)。我不明白任何人是如何让这些代码在本地运行的。你在用什么浏览器?您浏览器中的某些设置是否可能禁用了cors?或者你是在一个正在剥离cors头的代理后面?sdk 2和rally1完全支持cors,所以这应该不是问题……我使用的是Chrome,我还添加了一个cors Chrome扩展“Allow Control Allow Origin:*”。如果没有该扩展,我会收到一个错误,抱怨“请求的资源上不存在“Access Control Allow Origin”头。因此不允许访问源“”。我认为我没有任何设置禁用CORS,并且我没有代理。在Safari中,我没有CORS扩展,我没有像我之前的评论那样得到标题错误;但我在尝试将用户、订阅和“全部”加载到页面时确实遇到401个错误。嗯。。。401是未经验证的错误。我想我们以前没有见过你遇到的cors问题。chrome会周期性地将cors预缓存时间过长,但通常清除缓存/cookie可以解决该问题。