gpt4 book ai didi

ajax - AJAX 和 Azure 反向代理的 CORS 问题

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

我遇到了 CORS 问题。我通过域 B 从域 A 中的 SPA 到域 C(我的也是)中的 REST API 进行 AJAX 调用,我将域 B 设置为反向代理和负载均衡器。所有这三个都部署到 Azure Web Apps。

从 A 到 C 的调用可以直接进行,没有任何问题。但是从 A 通过 B 到 C 的调用将不起作用。

允许使用门户从 A 在 B 和 C 上进行 CORS。允许使用门户从 B 在 C 上使用 CORS。

API服务器C的Web.config有以下内容:

    <httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS" />
</customHeaders>
</httpProtocol>

但我收到以下错误:

    Response to preflight request doesn't pass access control check: 
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'null' is therefore not allowed access.
The response had HTTP status code 400.

所以,我的理解是 API 服务器必须允许 SPA 发出请求,这就是我认为上面几行所做的。那么有人知道这是怎么回事吗?

最佳答案

您可以在应用服务中控制 CORS,并且该设置可能会覆盖您的 web.config。在“App Service”菜单中向下滚动到“API”部分,有一个 CORS 菜单。

由于您指定了一些允许的 header 和方法,因此该部分可能不适合您,但如果您为 * 添加一条记录,然后将其删除,它应该开始使用基于 web.config 的 CORS 处理。

关于ajax - AJAX 和 Azure 反向代理的 CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46779269/

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