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

Azure Function(C#)实现HTML表单提交时遇404错误求助

问题原因及解决方案

1. 表单提交目标地址错误

你的表单当前提交到/api/Function2,但该函数仅配置处理GET请求,不接受POST请求,导致提交时返回404。负责处理POST请求的函数是Function2Submit,对应路由地址为/api/Function2Submit。

修复HTML代码

修改Function2.html中form标签的action属性:

<form action="/api/Function2Submit" method="post" enctype="application/x-www-form-urlencoded">

2. (可选但重要)修复HTML文件读取路径问题

当前代码直接用File.ReadAllTextAsync("Function2.html")读取文件,本地调试可能正常,但部署到Azure后会因工作目录变化导致文件找不到。建议通过ExecutionContext获取正确路径:

修复C#函数代码

更新ShowForm函数,添加ExecutionContext参数并拼接正确文件路径:

[FunctionName("Function2")]
public static async Task<IActionResult> ShowForm(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
    ILogger log,
    ExecutionContext context) // 添加该参数
{
    log.LogInformation("C# HTTP trigger function processed a request.");

    // 获取项目根目录并拼接HTML文件路径
    string htmlPath = Path.Combine(context.FunctionAppDirectory, "Function2.html");
    string html = await File.ReadAllTextAsync(htmlPath);
    return new ContentResult
    {
        Content = html,
        ContentType = "text/html",
        StatusCode = 200
    };
}

验证修复

  1. 重启Azure Function本地调试
  2. 访问http://localhost:7071/api/Function2打开表单
  3. 输入内容后点击提交,会正确请求/api/Function2Submit并返回对应响应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 04:50:17