上下文 我在nginx上运行了一个Rails API。 AngularJS前端直接从该API消耗。这两个应用程序都在不同的域中生产。
我与科尔斯打过几场比赛并输掉了大部分比赛。最后,我了解到您可以在nginx而不是后端配置Cors,请参阅here (1)和here (2)
我完全按照1说的那样做了工作。
在Chrome上:我可以毫无问题地进入我的AngularJS。当我手动刷新页面时,一切都会混乱,出现XMLHttpRequest cannot load http://domain/resource. No 'Access-Control-Allow-Origin' ....
错误。
在Firefox上:一切都像魅力一样,刷新与否。
现在,我将方法从1更改为2,看看我是否可以修复Chrome方案。这是设置add_header "Access-Control-Allow-Origin" $http_origin;
,其中列出了请求允许的内容的任何URL。我没有遇到任何特殊问题,因为API已经过完全身份验证。
改变方法后,Chrome仍然在手动刷新时抱怨Access-Control-Allow-Origin。这需要解决,因为我无法阻止用户刷新页面,或使用Firefox而不是Chrome。
有什么想法吗?
修改 经过更多的研究,这个cors错误只发生在我运行Angular App的本地版本时(也从API中消耗)
如果我尝试在生产版本中生成相同的错误,并且它没有发生,这很好。但我想知道为什么会发生这种情况。