表单提交时偶尔会生成 404 页面

Posted

技术标签:

【中文标题】表单提交时偶尔会生成 404 页面【英文标题】:Form occaisionally generating 404 page on submission 【发布时间】:2012-04-16 05:24:46 【问题描述】:

我有一个包含 2 个必填字段(电子邮件和消息)和 2 个非必填字段(姓名和号码)的表单。当您只填写必填字段时,它提交很好,但是当提交非必填字段时,它会生成 404。如果这有任何相关性,我正在使用 wordpress。

<form id="question" action="thankyou" method="post">
    <p class="question-label">Type your email address here...</p>
    <input id="email" name="email" type="text"></input>

    <h3>Your Question...</h3>
    <textarea id="message" name="message"></textarea>

    <input id="submit" name="submit" type="submit" value="GO" />

    <p>If you would like us to call you please enter you Name and Contact Number here:</p>

    <p class="question-label">Name</p>
    <input id="name" name="name" type="text"></input>

    <p class="question-label">Contact Number</p>
    <input id="number" name="number" type="text"></input>
</form>

【问题讨论】:

您确定是 404,而不是空白页吗? 是的,页面正在生成404错误页面。 真实的 404?使用 HTTP 标头声明 404?我问的原因是因为如果它不是 404 - 它是一个空白页面 - 它可能由您的表单处理器在发送所有标题之前回显某些内容触发,从而中断流程。尝试将动作更改为“?”而不是“#”。 抱歉 - 代码不是最新的。它转到一个单独的页面而不是'#'。已更新。 啊。只是一个快速的建议,你可能想在那里放一个更绝对的 URL;例如:/thankyou/(假设它是一个自定义页面。)原因是 WP 将从最近到精确的页面重定向,它可能会在此过程中丢失数据或阻塞。 【参考方案1】:

我相信这是因为您在“名称”输入中使用了保留关键字。试试:

<input id="enq-name" name="enq-name" type="text"></input>

它应该可以解决您的问题。

【讨论】:

我很确定 html 中的 ID 和 NAME 属性没有保留关键字。 确实如此,但在处理表单时它们是保留关键字。 这里是 WordPress 的保留条款列表,其中列出了“名称”codex.wordpress.org/Function_Reference/…

以上是关于表单提交时偶尔会生成 404 页面的主要内容,如果未能解决你的问题,请参考以下文章

yii2 表单提交一直报错 或者页面脚本写ajax,用firbug调试总是找不到地址页面404

表单提交后 POST 方法返回 404 - Laravel

解决Element表单回车提交会刷新页面的Bug

解决Element表单回车提交会刷新页面的Bug

php防止表单重复提交

Java 表单内含有时间类型字段,提交时404问题