使用Rally.data.wsapi.Store时出现CORS错误

使用Rally.data.wsapi.Store时出现CORS错误,cors,rally,Cors,Rally,我在Agile Central app SDK 2.1中有一个应用程序,它通过迭代一系列或多个项目来获得发布细节,一直运行良好。 我刚刚添加了三个新项目,其中两个项目正常工作,其中一个项目导致错误: Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://rally1.rallydev.com/slm/webservice/v2.0/Project

我在Agile Central app SDK 2.1中有一个应用程序,它通过迭代一系列或多个项目来获得发布细节,一直运行良好。 我刚刚添加了三个新项目,其中两个项目正常工作,其中一个项目导致错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at 
https://rally1.rallydev.com/slm/webservice/v2.0/Project/202236741040?fetch=ObjectID%2CName%2CState%2CWorkspace%2CSchemaVersion%2CWorkspaceConfiguration%2CDateFormat%2CDateTimeFormat%2CDragDropRankingEnabled%2CBuildandChangesetEnabled%2CTimeZone%2CWorkDays%2CIterationEstimateUnitName%2CReleaseEstimateUnitName%2CTaskUnitName%2CChildren.
(Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
奇怪的是,如果我从错误消息中剪切出准确的URL并粘贴到浏览器中,我会得到预期的正确结果,没有错误、警告,而且绝对没有CORS问题

如果我将ObjectID更改为另一个已知的好的ObjectID,我会得到完全相同的JSON负载,除了不同的项目名称,。 换句话说,如果我将URL放入浏览器中,它就可以工作,但是如果通过“Rally.data.wsapi.Store”调用,则会出现CORS错误

我曾尝试将其作为一个尽可能简单的应用程序,但仍然如此:(


我自己也曾见过类似的问题。当它发生时,我清除浏览器缓存,它似乎消失了……有一段时间了。我还不明白为什么会这样,但你可以试试


每当问题持续存在时(也就是说,它不会被清除),我就会在Chrome中打开开发工具,它有“打开时禁用缓存”的功能设置并修复标记。

阅读。粘贴
https://rally1.rallydev.com/slm/webservice/v2.0/Project/202236741040…
URL从那个错误进入你的浏览器地址栏并不“奇怪”-相反,这是预期的行为,因为在这种情况下,您将直接导航该URL。这不是跨源请求,因此浏览器不会阻止您加载页面。跨源请求是指当您尝试在一个域上运行JavaScript时,尝试加载另一个域的URL。Bro默认情况下,WSER会阻止该操作。
https://rally1.rallydev.com/slm/webservice/v2.0/Project/202236741040
endpoint需要配置为在响应中发送Access Control Allow Origin标头。因为它现在不这样做,所以浏览器不允许前端JavaScript代码访问响应。默认情况下,浏览器会这样做不允许您在JavaScript库上使用XHR或Ajax方法从跨源请求获取响应。但是站点可以在其响应中添加CORS头,以告知浏览器站点正在选择放宽默认行为,并希望改为允许跨源请求。非常感谢您提供的详细响应。非常感谢t、 我想知道你是否可以帮助我理解,如果我用不同的ID调用完全相同的端点,但不是那个端点,为什么它会起作用?谢谢。它几天后开始工作,所以我认为它与缓存有关,正如你所说。干杯。
Ext.create('Rally.data.wsapi.Store', {
    model: 'release',
    fetch: ['Name'],
    autoLoad: true,
    context: { 
        project: "/project/202236741040"
    },
    listeners: {
        load: function(store, records) {
            console.log(records);
        }
    },
    scope: this
});