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

Blazor Server调用API Delete接口返回404问题求助

HttpDelete接口调用返回404问题排查

问题现象

API多数功能正常,但Blazor组件调用HttpDelete接口时始终返回404错误。文件名格式为picture.png,尝试使用完整URL、对文件名做URL编码均无法解决,但通过Swagger调用该接口却能成功删除文件。

相关代码片段

API控制器代码

[Route("/[controller]")]
[ApiController]
public class UploadController : ControllerBase

// ... 其他业务代码

[HttpDelete("delete/{filename}")]
public IActionResult Delete(string filename)
{
    try
    {
        var filePath = Path.Combine(grundPath, ulPath, filename);
        if (System.IO.File.Exists(filePath))
        {
            System.IO.File.Delete(filePath);
            return StatusCode(200);
        }
    }
    catch (Exception ex)
    {
        return StatusCode(500, ex.Message);
    }
    return StatusCode(500);
}

Blazor组件调用代码

// ... 其他组件代码
@inject HttpClient Http
// ... 其他组件代码
string url = $"delete/{filename}"
HttpResponseMessage response = await Http.DeleteAsync(url);
// ... 其他组件代码

排查步骤及结论

  • 尝试使用完整URL发起请求,结果仍为404;
  • 对文件名做URL编码后,Toastr显示的请求URL与Swagger一致,但Visual Studio输出的请求URL显示未编码,初步怀疑编码问题,但未解决;
  • 检查Program.cs中的中间件顺序,未发现明显异常;
  • 2022-11-10测试验证:注释掉app.UseAuthentication和app.UseAuthorization后,Blazor组件可正常调用该API接口,确认问题根源为认证授权相关配置,后续将针对该点发布新问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:35:36