gpt4 book ai didi

ajax - 在 Azure 网站(Azure 应用服务)中启用 Access-Control-Allow-Credentials header

转载 作者:行者123 更新时间:2023-12-04 01:44:01 25 4
gpt4 key购买 nike

我们最近将一个 API 应用程序从 Azure 云服务迁移到 Azure 网站,一些客户端仍在使用我们的旧协议(protocol)进行身份验证,该协议(protocol)使用 cookie(而不是通常的 Authorization: Bearer HTTP header ) 。我们需要再支持此身份验证协议(protocol)一段时间,因为客户端将无法立即迁移。

要在定向到 API 的跨源 ajax 请求中支持 cookie,客户端需要将 XMLHttpRequest 中的 withCredentials 设置为 true,并且服务器需要使用 Access-Control-Allow-Credentials header 以及任何 CORS 请求进行响应。

我们面临的问题是Azure网站自己管理CORS,并使用自己的配置(仅限于允许的来源列表)进行响应,这不允许设置此 header ...从而破坏了我们所有 Ajax 客户端的应用程序!

有没有办法(暂时)在响应中添加此 header ?

最佳答案

我们终于设法了解了 Azure Apps CORS 中间件的行为。要禁用它,您必须清除 Web 应用程序的 CORS Blade 中的每个允许的源条目(包括 *)。然后您可以使用 Web Api 2 功能或使用 web.config 自行管理 CORS。

该信息甚至可以在 the documentation 中找到。 :

Don't try to use both Web API CORS and App Service CORS in one API app. App Service CORS will take precedence and Web API CORS will have no effect. For example, if you enable one origin domain in App Service, and enable all origin domains in your Web API code, your Azure API app will only accept calls from the domain you specified in Azure.

所以最终的答案是:如果您的应用程序不需要非常具体的 CORS 管理,则可以使用 Azure 应用服务 CORS。否则,您需要自己处理并禁用 Web 应用程序中的所有 CORS 配置。

关于ajax - 在 Azure 网站(Azure 应用服务)中启用 Access-Control-Allow-Credentials header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36860423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com