【问题标题】:POST form keeps making GET requestPOST 表单不断发出 GET 请求
【发布时间】:2016-05-05 05:28:19
【问题描述】:

我创建了一个只有提交按钮的表单。这是我在视图中的代码:

<%= button_to searches_send_request_path, class: "btn btn-warning", id: "contact" do %>
  <i class="fa fa-envelope"> &nbsp; Send Request</i>
<% end %>

在 Chrome 开发者工具中,它以 HTML 格式显示表单:

<form class="button_to" method="post" action="/searches/send_request"> 
  <button class="btn btn-warning" id="contact" type="submit">
    <i class="fa fa-envelope"> &nbsp; Send Request</i>
  </button>
</form>

但是,当我单击按钮时,它会不断发送 GET 请求。有什么想法吗?

【问题讨论】:

  • 你能添加你正在使用的rails form_for标签吗?
  • 我没有那个。使用 button_to,我不需要 form_for。正如您在我帖子的 html 部分中看到的那样,button_to 会自动生成一个表单。

标签: html ruby-on-rails twitter-bootstrap


【解决方案1】:

您提供的 HTML 使用 POST 提交表单,这是肯定的。可能你有一些 JS 代码将 POST 替换为 GET。

【讨论】:

  • 我没有任何与此页面相关的JS。或者有什么办法可以查到吗?
  • 尝试使用 Chrome 控制台 (F12) 进行调试。检查该方法是否仍然是 GET。检查“控制台”选项卡中的错误,也许有一些错误阻止 Rails ujs 正常工作。然后你可以尝试检查绑定在该表单上的事件。
【解决方案2】:

button_to 默认为 POST...

它将默认执行POST 操作

由于您没有将method 明确设置为GET,这表明您在浏览器堆栈上存在问题。


可以在link_to 文档中找到线索:

请注意,如果用户禁用了 JavaScript,请求将回退到使用 GET

具体来说,您的 javascript 被禁用或错误;导致您遇到的功能的常见问题。

--

解决方法是确保您的 Javascript 工作正常。最简单的方法是加载“开发者控制台”,您可以在其中看到 Javascript 中的任何错误。

在 Chrome 中,您可以Right-Click &gt; Inspect Element - 这将显示console,您可以从中识别出您的 JS 返回的任何错误:

如果您这样做,我将能够更好地帮助您解决它可能遇到的任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 2021-10-12
    • 2015-06-11
    • 2017-06-28
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    相关资源
    最近更新 更多