如何修复 - 重新登录时,CORS 策略已阻止访问“https://login.windows.net......”获取

Posted

技术标签:

【中文标题】如何修复 - 重新登录时,CORS 策略已阻止访问“https://login.windows.net......”获取【英文标题】:How to fix - Access to fetch at 'https://login.windows.net......' has been blocked by CORS policy - when logging back in 【发布时间】:2019-09-15 01:57:53 【问题描述】:

我的 React / ASP.net 核心 Web API 应用和 Azure AD 身份验证出现问题。

我第一次登录时一切正常。然后,如果我退出,我会看到 Microsoft 托管的“您已退出。返回网站”页面,其中包含返回该网站的链接。 如果我然后单击该链接,则应用程序在尝试进行身份验证时会挂起,并且我的 Chrome 浏览器控制台中出现 CORS 错误:

访问获取 'https://login.windows.net/XXXXX/oauth2/authorize?response_type=id_token&redirect_uri= (等)'(重定向自 'https://uat.xxxxx.com/coreservice/api/foo?page=1&pageSize=25') 来自 来源“https://uat.xxxxx.com”已被 CORS 策略阻止: 对预检请求的响应未通过访问控制检查:否 'Access-Control-Allow-Origin' 标头出现在请求的 资源。如果不透明的响应满足您的需求,请设置请求的 模式为“no-cors”以获取禁用 CORS 的资源。

额外信息:

作为一项实验,我从网络上的其他地方托管了一个指向该站点的链接,如果我单击该链接,我会遇到同样的问题行为。

如果此时我用力刷新页面,那么一切正常 - 我会按预期看到 MS Azure 登录页面。

任何帮助将不胜感激!

【问题讨论】:

你有没有解决这个问题?我有同样的错误。 @user1857450 这已经解决了,但恐怕我不记得是怎么解决的了(可能是我们团队的另一个开发人员)。但是我确实记得的是,CORS 错误有点像红鲱鱼 - 我们的 CORS 配置没有任何问题 - 根本问题出在我们应用程序的其他地方。抱歉,这可能不是很有帮助。 【参考方案1】:

不确定您是否使用 Azure Web 应用程序来托管您的应用程序,但我遇到的问题是我使用的是 Azure 门户中身份验证/授权下的应用服务身份验证设置。此设置指向 Azure AD 实例。但我也在使用 React-ADAL npm 包裹在我的应用程序周围的包,因此这会导致冲突问题,因为它们都使用同一个 Azure AD 实例。

我在 Azure 门户中关闭了应用服务身份验证设置,一切正常。

此设置确实有效,因为我已将它用于其他应用程序和简单的 Web 应用程序,但我意识到 Azure App Auth 设置与 React-ADAL npm 包冲突。

希望这会有所帮助。

【讨论】:

以上是关于如何修复 - 重新登录时,CORS 策略已阻止访问“https://login.windows.net......”获取的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“评估已被 CORS 政策阻止:反应中没有“访问控制允许来源”

CORS 策略已阻止从源“null”访问 XMLHttpRequest:对预检请求的响应未通过访问控制 [重复]

访问 XMLHttpRequest 的问题已被 CORS 策略(Python/Angular)阻止

对 Tomcat 服务器进行 API 调用时如何修复“被 CORS 策略阻止”错误

CORS 策略已阻止从源 URL 访问 URL 的 XMLHttpRequest [重复]

CORS 策略已阻止对 XMLHttpRequest 的访问