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
相关产品推荐
相关产品推荐

