You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio Dev Tunnel下Blazor WASM请求头initial_key无法被API获取

解决Dev Tunnel下Blazor WASM自定义请求头无法被API获取的问题

问题根源

Dev Tunnel作为代理服务,默认可能过滤非标准自定义请求头,或是API的CORS策略未明确允许该头通过代理转发。

解决方案

  • 配置Dev Tunnel允许自定义请求头
    打开Visual Studio顶部工具栏的「Dev Tunnels」入口,进入设置界面后找到「Allowed Headers」配置项,将initial_key添加到允许列表中。
    也可以直接修改项目的launchSettings.json,在Dev Tunnel配置段添加允许头参数:

    "profiles": {
      "YourAPIProject": {
        "commandName": "Project",
        "dotnetRunMessages": true,
        "launchBrowser": true,
        "applicationUrl": "https://localhost:5001;http://localhost:5000",
        "environmentVariables": {
          "ASPNETCORE_ENVIRONMENT": "Development"
        },
        "devTunnel": {
          "enabled": true,
          "allowedHeaders": "initial_key"
        }
      }
    }
    
  • 更新API的CORS策略
    在API项目的Program.cs中,明确将initial_key加入允许的请求头列表:

    builder.Services.AddCors(options =>
    {
        options.AddPolicy("AllowBlazorClient", policy =>
        {
            policy.WithOrigins("https://your-blazor-wasm-url") // 替换为你的Blazor应用地址
                  .AllowAnyMethod()
                  .WithHeaders("initial_key", "Content-Type");
        });
    });
    
    // 注意:UseCors需放在UseRouting之后、UseAuthorization之前
    app.UseCors("AllowBlazorClient");
    
  • 改用符合惯例的自定义头命名
    部分代理会过滤不带X-前缀的自定义头,可将initial_key改为X-Initial-Key,同时同步修改Blazor端和API端的头名称,这类符合惯例的头通常能被代理默认放行。

  • 检查Dev Tunnel转发规则
    进入Visual Studio的Dev Tunnel管理面板,确认是否存在自定义转发规则移除了initial_key头,如有则删除或调整该规则。

内容的提问来源于stack exchange,提问作者Ibanez1408

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 13:33:30