2016-01-28 131 views
0

我创建了一个只有提交按钮的表单。下面是我在视图代码:POST表单不断发出GET请求

<%= 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请求。任何想法是怎么回事?

+0

你可以添加您正在使用的rails form_for标签吗? –

+0

我没有那个。用button_to,我不应该需要form_for。正如你可以在我的文章的html部分看到的,button_to会自动生成一个表单。 – WeiRoR

回答

0

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

+0

我没有任何与此页面相关的JS。或者有什么方法可以检查它吗? – WeiRoR

+0

尝试使用Chrome控制台(F12)进行调试。检查该方法仍然是GET。检查“控制台”选项卡中的错误,也许有一些错误阻止Rails ujs完成它的工作。然后,您可以尝试检查绑定在该表单上的事件。 –

0

button_to默认为POST ...

,则默认为执行POST操作

既然你没有明确设置你的methodGET,这表明你有一个较高的问题浏览器堆栈。


一条线索可以link_to文档中找到:

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

具体来说,您javascript被禁用或错误;这是一个常见的问题,会导致您正在使用的功能。

-

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

在Chrome中,你可以Right-Click > Inspect Element - 这将显示console,从中你将能够识别任何错误的你JS将返回:

enter image description here

如果你这样做,我将会处于更好的位置来帮助您解决可能存在的任何问题。