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 }; }
验证修复
- 重启Azure Function本地调试
- 访问
http://localhost:7071/api/Function2打开表单 - 输入内容后点击提交,会正确请求
/api/Function2Submit并返回对应响应
内容的提问来源于stack exchange,提问作者Simon Jespersen
相关产品推荐
相关产品推荐

