我们可以不为Azure App Service设置允许的标头吗?

问题描述 投票:0回答:1

我在 Azure 应用服务中发布了一个 api,它使用一些自定义标头。当我部署应用程序并尝试配置 CORS 时,没有选项可以设置允许的标头。另外,微软文档中似乎没有提到这件事。谁能告诉我我们是否可以为 Azure 应用服务设置允许的标头?

  • 尝试检查“应用服务”>“设置”>“API”>“CORS”、“应用服务”>“设置”>“配置”下的可用选项
  • 尝试查找 Microsoft 的 CORS 官方文档以及 Azure 应用服务允许的标头。

所有试验都以失败告终。

azure cors azure-web-app-service azure-appservice
1个回答
0
投票

Azure 应用服务允许为 Web 应用程序配置 CORS,但它不提供在 Azure 门户 UI 中设置

Allowed Headers
的直接选项。

为了在后端处理CORS,我们可以根据框架以编程方式设置允许的标头。

下面是

Asp.net core
的示例,我在Program.cs文件中设置了Cors

程序.cs

builder.Services.AddCors(options =>
{
    options.AddPolicy("CustomCorsPolicy", policy =>
    {
        policy.WithOrigins("https://FrontendAppURL")
              .AllowAnyMethod()                        
              .AllowAnyHeader()                       
              .WithHeaders("X-Custom-Header", "Content-Type");  
    });
});

app.UseCors("AllowCustomHeaders");

对于

.Net Framework
,我使用
web.config
文件来设置 Azure Web 应用服务中的 Cors

我将

web.config
文件添加到 Web Api 的根目录中。

web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <clear />
       <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
        <add name="Access-Control-Allow-Headers" value="Content-Type, X-Custom-Header" />
        <add name="Cache-Control" value="public, max-age=3600" />
        <add name="X-Custom-Header" value="MyCustomHeaderValue" />
      </customHeaders>
    </httpProtocol>
    <rewrite>
      <rules>
        <rule name="Redirect to HTTPS" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
    <defaultDocument>
      <files>
        <clear />
        <add value="index.html" />
      </files>
    </defaultDocument>
  </system.webServer>
</configuration>

输出

enter image description here

欲了解更多详情,请参阅Ms Doc

© www.soinside.com 2019 - 2024. All rights reserved.