当另一个 HTML 页面向其发布表单时,HTML 页面会引发 405 错误

Posted

技术标签:

【中文标题】当另一个 HTML 页面向其发布表单时,HTML 页面会引发 405 错误【英文标题】:HTML page throws a 405 error when another HTML page posts a form to it 【发布时间】:2011-11-03 00:48:42 【问题描述】:

我有一个发布到另一个 html 页面的 html 页面。两个页面都加载正常,但是当我将第一页上的表单发布到第二页时,我收到 405 - Method Not Allowed 错误。我使用 IIS 7 在 Windows 机器上运行该站点。

这是发布到第二页的页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Form Post</title>
</head>

<body>
<form method="post" action="/test/form_fetch.html">
    <input type="hidden" name="hidtest" value="works"/>
    <input type="submit" value="submit" />
</form>
</body>
</html>

这是第二页

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Form Fetch</title>
</head>

<body>
</body>
</html>

错误详情:

HTTP 错误 405.0 - 方法不允许 您正在查找的页面无法显示,因为正在使用无效的方法(HTTP 动词)。

模块:StaticFileModule 通知:ExecuteRequestHandler 处理程序:静态文件 错误代码:0x80070001

StaticFile Handler 已经设置为能够处理所有动词,但它仍然不起作用。

【问题讨论】:

这个较旧的答案可能会帮助您解决问题:***.com/questions/4287330/… 【参考方案1】:

这是一个服务器配置问题。文档中的任何内容都不会影响响应的 HTTP 状态代码。

服务器已设置为拒绝对该 URI 的 POST 请求。

【讨论】:

在 IIS 中?不知道,试试手册?我希望这是一个默认值,因为纯 HTML 文档无法处理 POST 数据,这使得向一个 POST 请求发出一个非常没有意义的。用程序(可能是 ASP.NET 页面)替换 HTML 文档似乎更有意义。【参考方案2】:

仅仅因为你不按动词过滤并不意味着处理程序可以处理动词。你如何发布到静态文件?我敢打赌,该错误来自处理程序本身。

请尝试将该帖子发送到 CGI / ISAPI / MVC / WEBAPI / ASP / ASP.NET / php 页面。

【讨论】:

以上是关于当另一个 HTML 页面向其发布表单时,HTML 页面会引发 405 错误的主要内容,如果未能解决你的问题,请参考以下文章

当另一个表单关闭时,如何设置一个表单的标题(C#)

HTML5 - 当另一个音频标签开始播放时如何停止音频?

从没有php的html表单发送电子邮件[关闭]

在 ASP.NET 中使用嵌入式标准 HTML 表单

当另一个字段有反馈时,为啥 bootstrap-4 输入组会拉伸?

Web页面向后台提交数据的方式和选择