【问题标题】:404 when submit() form by jQueryjQuery提交()表单时出现404
【发布时间】:2016-08-05 14:26:01
【问题描述】:

在 wordpress 中,我使用自定义 php 代码创建了页面,该代码将处理发布的数据。当我直接打开我的自定义页面时,例如http://example.com/page/ 一切正常。但是当我将该页面用作表单操作时,出现错误Oops! That page can’t be found.

<form id="orderForm" method="post" action="http://example.com/page/" enctype="multipart/form-data">
<input type="text" name="1" />
</form>

错误是当我直接在控制台或 .on("click") 事件中运行 $('#orderForm').submit(); 时。

我试过了:

  • 将操作更改为“/page/”
  • 添加header("HTTP/1.1 200 OK");
  • 添加标题('Access-Control-Allow-Origin: *');

我得到了那个错误:

当我直接打开页面时,一切正常。

【问题讨论】:

  • 我可能错了,但你试过没有最后一个 / 吗? http://example.com/page/ 可能会导致在主机example.com 中查看/page 下的页面`` 所以http://example.com/page 是对主机/page 的调用example.com
  • page 是文件夹还是文件?如果您在末尾添加/,它将尝试在文件夹page 内查找索引文件(检查您的服务器用作索引的文件类型......)如果它是一个文件,然后删除@987654338 @ 并且可能您需要添加扩展名...例如 page.php
  • "page" 是 wordpress 子页面。我试过没有/。当我直接放在浏览器example.com/page 上时,它会重定向到example.com/page/,但是当我 .submit() 时它不会。我试过example.com/?p=100 但还是一样:/
  • 好的,我观察到的:当我$('#orderForm').submit(); 时,表格很清晰 - 它有效。问题是当我填写任何输入时。

标签: javascript jquery wordpress forms


【解决方案1】:

好的,我发现了问题!我的一个输入字段有 name 和 id = "name" ...我注意到当我发送没有这个字段的表单时,一切正常。我将输入名称更改为 other 并且它可以工作!

有人知道为什么我不能输入名字name吗?是bug吗?

感谢大家的承诺。

【讨论】:

  • 这可能是 WP 的古怪行为之一,但您可以肯定地将输入命名为 name。现在不要继续命名它们 submit (在 JS 中,所有表单元素都存储在 form[name] 对象中,覆盖任何其他属性,例如提交函数)
  • 我也遇到了同样的问题。如果表单有一个名为“name”的输入字段,则返回 404
【解决方案2】:

它不起作用的原因是因为 Wordpress 有一个您不能使用的保留变量名称列表 - 'name' 就是其中之一!

https://codex.wordpress.org/Reserved_Terms

【讨论】:

    【解决方案3】:

    据我了解,使用 .htaccess,.php 扩展名是隐藏的。所以完整的链接是http://example.com/page.php。使用那个

    【讨论】:

      猜你喜欢
      • 2017-08-24
      • 2014-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 2018-02-03
      相关资源
      最近更新 更多